diff --git a/Makefile b/Makefile index dc815ae..59439a5 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ OBJS = $(SRCS:%.c=%.o) DOBJS = $(SRCS:%.c=%.do) EXENAME = $(NAME) LIBTARGET = lib$(NAME) -LLTDIR = ../llt +LLTDIR = llt LLT = $(LLTDIR)/libllt.a # OS flags: LINUX, WIN32, MACOSX diff --git a/Makefile.macosx b/Makefile.macosx index e13090f..2a5a3cb 100644 --- a/Makefile.macosx +++ b/Makefile.macosx @@ -5,10 +5,12 @@ SRCS = $(NAME).c builtins.c string.c equalhash.c table.c iostream.c OBJS = $(SRCS:%.c=%.o) DOBJS = $(SRCS:%.c=%.do) EXENAME = $(NAME) -LLTDIR = ../llt +LIBTARGET = lib$(NAME) +LLTDIR = llt LLT = $(LLTDIR)/libllt.a -FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO +CONFIG = -DMACOSX -DARCH_X86_64 -DBITS64 -D__CPU__=686 +FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO $(CONFIG) LIBFILES = $(LLT) LIBS = $(LIBFILES) -lm -framework ApplicationServices @@ -18,7 +20,7 @@ SHIPFLAGS = -O2 -DNDEBUG $(FLAGS) default: release test test: - ./flisp unittest.lsp + cd tests && ../flisp unittest.lsp %.o: %.c $(CC) $(SHIPFLAGS) -c $< -o $@ @@ -27,18 +29,30 @@ test: flisp.o: flisp.c cvalues.c types.c flisp.h print.c read.c equal.c flisp.do: flisp.c cvalues.c types.c flisp.h print.c read.c equal.c +flmain.o: flmain.c flisp.h +flmain.do: flmain.c flisp.h $(LLT): cd $(LLTDIR) && make -debug: $(DOBJS) $(LIBFILES) - $(CC) $(DEBUGFLAGS) $(DOBJS) -o $(EXENAME) $(LIBS) +$(LIBTARGET).da: $(DOBJS) + rm -rf $@ + ar rs $@ $(DOBJS) + +$(LIBTARGET).a: $(OBJS) + rm -rf $@ + ar rs $@ $(OBJS) + +debug: $(DOBJS) $(LIBFILES) $(LIBTARGET).da flmain.do + $(CC) $(DEBUGFLAGS) $(DOBJS) flmain.do -o $(EXENAME) $(LIBS) $(LIBTARGET).da make test -release: $(OBJS) $(LIBFILES) - $(CC) $(SHIPFLAGS) $(OBJS) -o $(EXENAME) $(LIBS) +release: $(OBJS) $(LIBFILES) $(LIBTARGET).a flmain.o + $(CC) $(SHIPFLAGS) $(OBJS) flmain.o -o $(EXENAME) $(LIBS) $(LIBTARGET).a clean: rm -f *.o rm -f *.do rm -f $(EXENAME) + rm -f $(LIBTARGET).a + rm -f $(LIBTARGET).da