Replace makefiles with a simple shell script
Build, bootstrap and test everything in one go. Put build artifacts in a separate subdirectory which is emptied at the start of every build.
This commit is contained in:
		
							parent
							
								
									82e09fa92b
								
							
						
					
					
						commit
						349a42510f
					
				|  | @ -1,8 +1,2 @@ | |||
| /*.o | ||||
| /*.do | ||||
| /*.a | ||||
| /*.da | ||||
| /flisp | ||||
| /llt/*.o | ||||
| /llt/*.a | ||||
| /build-*/ | ||||
| /flisp.boot.bak | ||||
|  |  | |||
							
								
								
									
										58
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										58
									
								
								Makefile
								
								
								
								
							|  | @ -1,58 +0,0 @@ | |||
| FREEBSD-GE-10 = $(shell test `uname` = FreeBSD -a `uname -r | cut -d. -f1` -ge 10 && echo YES) | ||||
| CC = $(if $(FREEBSD-GE-10),clang,gcc) | ||||
| 
 | ||||
| NAME = flisp | ||||
| SRCS = $(NAME).c builtins.c string.c equalhash.c table.c iostream.c | ||||
| OBJS = $(SRCS:%.c=%.o) | ||||
| DOBJS = $(SRCS:%.c=%.do) | ||||
| EXENAME = $(NAME) | ||||
| LIBTARGET = lib$(NAME) | ||||
| LLTDIR = llt | ||||
| LLT = $(LLTDIR)/libllt.a | ||||
| 
 | ||||
| FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO | ||||
| LIBFILES = $(LLT) | ||||
| LIBS = $(LIBFILES) -lm | ||||
| 
 | ||||
| DEBUGFLAGS = -g -DDEBUG $(FLAGS) | ||||
| SHIPFLAGS = -O2 -DNDEBUG $(FLAGS) | ||||
| 
 | ||||
| default: release test | ||||
| 
 | ||||
| test: | ||||
| 	cd tests && ../flisp unittest.lsp | ||||
| 
 | ||||
| %.o: %.c | ||||
| 	$(CC) $(SHIPFLAGS) -c $< -o $@ | ||||
| %.do: %.c | ||||
| 	$(CC) $(DEBUGFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| flisp.o:  flisp.c cvalues.c operators.c types.c flisp.h print.c read.c equal.c | ||||
| flisp.do: flisp.c cvalues.c operators.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) | ||||
| 
 | ||||
| $(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) $(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 | ||||
|  | @ -1,59 +0,0 @@ | |||
| CC ?= gcc | ||||
| CARBON_HEADERS ?= "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/Developer/Headers" | ||||
| 
 | ||||
| NAME = flisp | ||||
| SRCS = $(NAME).c builtins.c string.c equalhash.c table.c iostream.c | ||||
| OBJS = $(SRCS:%.c=%.o) | ||||
| DOBJS = $(SRCS:%.c=%.do) | ||||
| EXENAME = $(NAME) | ||||
| LIBTARGET = lib$(NAME) | ||||
| LLTDIR = llt | ||||
| LLT = $(LLTDIR)/libllt.a | ||||
| 
 | ||||
| CONFIG = -DBITS64 -D__CPU__=686 -I$(CARBON_HEADERS) | ||||
| FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO $(CONFIG) | ||||
| LIBFILES = $(LLT) | ||||
| LIBS = $(LIBFILES) -lm -framework ApplicationServices | ||||
| 
 | ||||
| DEBUGFLAGS = -g -DDEBUG $(FLAGS) | ||||
| SHIPFLAGS = -O2 -DNDEBUG $(FLAGS) | ||||
| 
 | ||||
| default: release test | ||||
| 
 | ||||
| test: | ||||
| 	cd tests && ../flisp unittest.lsp | ||||
| 
 | ||||
| %.o: %.c | ||||
| 	$(CC) $(SHIPFLAGS) -c $< -o $@ | ||||
| %.do: %.c | ||||
| 	$(CC) $(DEBUGFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| 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 -f Makefile.macosx | ||||
| 
 | ||||
| $(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) $(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 | ||||
							
								
								
									
										14
									
								
								bootstrap.sh
								
								
								
								
							
							
						
						
									
										14
									
								
								bootstrap.sh
								
								
								
								
							|  | @ -1,14 +0,0 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| cp flisp.boot flisp.boot.bak | ||||
| 
 | ||||
| echo "Creating stage 0 boot file..." | ||||
| #../../branches/interpreter/femtolisp/flisp mkboot0.lsp system.lsp compiler.lsp > flisp.boot.new | ||||
| ./flisp mkboot0.lsp system.lsp compiler.lsp > flisp.boot.new | ||||
| mv flisp.boot.new flisp.boot | ||||
| 
 | ||||
| echo "Creating stage 1 boot file..." | ||||
| ./flisp mkboot1.lsp | ||||
| 
 | ||||
| echo "Testing..." | ||||
| make test | ||||
							
								
								
									
										37
									
								
								llt/Makefile
								
								
								
								
							
							
						
						
									
										37
									
								
								llt/Makefile
								
								
								
								
							|  | @ -1,37 +0,0 @@ | |||
| FREEBSD-GE-10 = $(shell test `uname` = FreeBSD -a `uname -r | cut -d. -f1` -ge 10 && echo YES) | ||||
| CC = $(if $(FREEBSD-GE-10),clang,gcc) | ||||
| 
 | ||||
| SRCS = bitvector.c hashing.c socket.c timefuncs.c ptrhash.c utf8.c ios.c \
 | ||||
| 	dirpath.c htable.c bitvector-ops.c int2str.c dump.c random.c \
 | ||||
| 	lltinit.c | ||||
| OBJS = $(SRCS:%.c=%.o) | ||||
| DOBJS = $(SRCS:%.c=%.do) | ||||
| TARGET = libllt.a | ||||
| 
 | ||||
| FLAGS = -Wall -Wno-strict-aliasing $(CFLAGS) | ||||
| LIBS = | ||||
| 
 | ||||
| DEBUGFLAGS = -g -DDEBUG $(FLAGS) | ||||
| SHIPFLAGS = -O3 -DNDEBUG $(FLAGS) | ||||
| 
 | ||||
| default: release | ||||
| 
 | ||||
| %.o: %.c | ||||
| 	$(CC) $(SHIPFLAGS) -c $< -o $@ | ||||
| %.do: %.c | ||||
| 	$(CC) $(DEBUGFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| debug: $(DOBJS) | ||||
| 	rm -rf $(TARGET) | ||||
| 	ar rs $(TARGET) $(DOBJS) | ||||
| 
 | ||||
| release: $(OBJS) | ||||
| 	rm -rf $(TARGET) | ||||
| 	ar rs $(TARGET) $(OBJS) | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f *.o | ||||
| 	rm -f *.do | ||||
| 	rm -f *~ | ||||
| 	rm -f core* | ||||
| 	rm -f $(TARGET) | ||||
|  | @ -1,39 +0,0 @@ | |||
| CC = gcc | ||||
| 
 | ||||
| SRCS = bitvector.c hashing.c socket.c timefuncs.c ptrhash.c utf8.c ios.c \
 | ||||
| 	dirpath.c htable.c bitvector-ops.c int2str.c dump.c random.c \
 | ||||
| 	lltinit.c | ||||
| OBJS = $(SRCS:%.c=%.o) | ||||
| DOBJS = $(SRCS:%.c=%.do) | ||||
| TARGET = libllt.a | ||||
| 
 | ||||
| # OS flags: LINUX, WIN32, MACOSX
 | ||||
| # architecture flags: __CPU__=xxx, BITS64, ARCH_X86, ARCH_X86_64
 | ||||
| CONFIG = -DBITS64 -D__CPU__=686 | ||||
| FLAGS = -Wall -Wno-strict-aliasing $(CFLAGS) $(CONFIG) | ||||
| LIBS = | ||||
| 
 | ||||
| DEBUGFLAGS = -g -DDEBUG $(FLAGS) | ||||
| SHIPFLAGS = -O3 -DNDEBUG $(FLAGS) | ||||
| 
 | ||||
| default: release | ||||
| 
 | ||||
| %.o: %.c | ||||
| 	$(CC) $(SHIPFLAGS) -c $< -o $@ | ||||
| %.do: %.c | ||||
| 	$(CC) $(DEBUGFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| debug: $(DOBJS) | ||||
| 	rm -rf $(TARGET) | ||||
| 	ar rs $(TARGET) $(DOBJS) | ||||
| 
 | ||||
| release: $(OBJS) | ||||
| 	rm -rf $(TARGET) | ||||
| 	ar rs $(TARGET) $(OBJS) | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f *.o | ||||
| 	rm -f *.do | ||||
| 	rm -f *~ | ||||
| 	rm -f core* | ||||
| 	rm -f $(TARGET) | ||||
|  | @ -0,0 +1,56 @@ | |||
| #!/bin/sh | ||||
| set -eu | ||||
| CC="${CC:-clang}" | ||||
| CFLAGS="-O2 -falign-functions -Wall -Wno-strict-aliasing -I ../llt -D NDEBUG -D USE_COMPUTED_GOTO" | ||||
| LFLAGS="-lm" | ||||
| builddir="build-$(uname | tr A-Z- a-z_)-$(uname -m | tr A-Z- a-z_)" | ||||
| cd "$(dirname "$0")"/.. | ||||
| echo "Entering directory '$PWD'" | ||||
| set -x | ||||
| mkdir -p "$builddir" | ||||
| find "$builddir" -mindepth 1 -delete | ||||
| { set +x; } 2>/dev/null | ||||
| cd "$builddir" | ||||
| echo "Entering directory '$PWD'" | ||||
| set -x | ||||
| $CC $CFLAGS -c ../builtins.c | ||||
| $CC $CFLAGS -c ../equalhash.c | ||||
| $CC $CFLAGS -c ../flisp.c | ||||
| $CC $CFLAGS -c ../flmain.c | ||||
| $CC $CFLAGS -c ../iostream.c | ||||
| $CC $CFLAGS -c ../string.c | ||||
| $CC $CFLAGS -c ../table.c | ||||
| $CC $CFLAGS -c ../llt/bitvector-ops.c | ||||
| $CC $CFLAGS -c ../llt/bitvector.c | ||||
| $CC $CFLAGS -c ../llt/dirpath.c | ||||
| $CC $CFLAGS -c ../llt/dump.c | ||||
| $CC $CFLAGS -c ../llt/hashing.c | ||||
| $CC $CFLAGS -c ../llt/htable.c | ||||
| $CC $CFLAGS -c ../llt/int2str.c | ||||
| $CC $CFLAGS -c ../llt/ios.c | ||||
| $CC $CFLAGS -c ../llt/lltinit.c | ||||
| $CC $CFLAGS -c ../llt/ptrhash.c | ||||
| $CC $CFLAGS -c ../llt/random.c | ||||
| $CC $CFLAGS -c ../llt/socket.c | ||||
| $CC $CFLAGS -c ../llt/timefuncs.c | ||||
| $CC $CFLAGS -c ../llt/utf8.c | ||||
| $CC $LFLAGS -o flisp -lm \ | ||||
|     builtins.o equalhash.o flisp.o flmain.o iostream.o string.o table.o \ | ||||
|     bitvector-ops.o bitvector.o dirpath.o dump.o hashing.o htable.o \ | ||||
|     int2str.o ios.o lltinit.o ptrhash.o random.o socket.o timefuncs.o utf8.o | ||||
| ln -s ../flisp.boot flisp.boot | ||||
| { set +x; } 2>/dev/null | ||||
| cd .. | ||||
| echo "Entering directory '$PWD'" | ||||
| echo "Creating stage 0 boot file..." | ||||
| set -x | ||||
| "$builddir"/flisp mkboot0.lsp system.lsp compiler.lsp >flisp.boot.new | ||||
| mv flisp.boot.new flisp.boot | ||||
| { set +x; } 2>/dev/null | ||||
| echo "Creating stage 1 boot file..." | ||||
| set -x | ||||
| "$builddir"/flisp mkboot1.lsp | ||||
| { set +x; } 2>/dev/null | ||||
| cd tests | ||||
| echo "Entering directory '$PWD'" | ||||
| ../"$builddir"/flisp unittest.lsp | ||||
		Loading…
	
		Reference in New Issue