# Cyclone Scheme # Copyright (c) 2014, Justin Ethier # All rights reserved. # # Makefile for bootstrapping cyclone from generated C files. include Makefile.config CFLAGS = -g LIBS = -lcyclone -lm COBJ = scheme/base scheme/read scheme/write scheme/char scheme/eval scheme/file scheme/cyclone/common scheme/cyclone/libraries scheme/cyclone/transforms scheme/cyclone/cgen scheme/cyclone/util CFILES = $(addsuffix .c, $(COBJ)) COBJECTS=$(CFILES:.c=.o) %.o: %.c %.h $(CC) $(CFLAGS) $< -c -o $@ all: cyclone icyc unit-tests libcyclone.a: runtime.c include/cyclone/runtime.h dispatch.c $(CC) -g -c -Iinclude dispatch.c -o dispatch.o $(CC) -g -c -Iinclude -DCYC_INSTALL_DIR=\"$(PREFIX)\" -DCYC_INSTALL_LIB=\"$(LIBDIR)\" -DCYC_INSTALL_INC=\"$(INCDIR)\" -DCYC_INSTALL_SLD=\"$(DATADIR)\" runtime.c -o runtime.o $(AR) rcs libcyclone.a runtime.o dispatch.o cyclone: $(COBJECTS) libcyclone.a $(CC) cyclone.c $(CFLAGS) -c -o cyclone.o $(CC) cyclone.o $(COBJECTS) $(LIBS) $(CFLAGS) -o cyclone icyc: cyclone ./cyclone icyc.scm unit-tests: unit-tests.scm ./cyclone unit-tests.scm && ./unit-tests #.PHONY: clean #clean: # rm -rf a.out http stack-watch stack-tests *.o # Install dependencies required to actually build this project install-deps: $(MKDIR) $(DESTDIR)$(LIBDIR) $(MKDIR) $(DESTDIR)$(INCDIR) $(MKDIR) $(DESTDIR)$(DATADIR) $(MKDIR) $(DESTDIR)$(DATADIR)/scheme/cyclone $(INSTALL) -m0644 include/cyclone/*.h $(DESTDIR)$(INCDIR)/ $(INSTALL) -m0644 scheme/*.scm $(DESTDIR)$(DATADIR)/scheme $(INSTALL) -m0644 scheme/*.sld $(DESTDIR)$(DATADIR)/scheme $(INSTALL) -m0644 scheme/cyclone/*.scm $(DESTDIR)$(DATADIR)/scheme/cyclone $(INSTALL) -m0644 scheme/cyclone/*.sld $(DESTDIR)$(DATADIR)/scheme/cyclone install-libs: $(MKDIR) $(DESTDIR)$(LIBDIR) $(INSTALL) -m0644 libcyclone.a $(DESTDIR)$(LIBDIR)/ install: $(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(LIBDIR) $(MKDIR) $(DESTDIR)$(INCDIR) $(MKDIR) $(DESTDIR)$(DATADIR) $(MKDIR) $(DESTDIR)$(DATADIR)/scheme/cyclone $(INSTALL) -m0755 cyclone $(DESTDIR)$(BINDIR)/ $(INSTALL) -m0755 icyc $(DESTDIR)$(BINDIR)/ $(INSTALL) -m0644 libcyclone.a $(DESTDIR)$(LIBDIR)/ $(INSTALL) -m0644 include/cyclone/*.h $(DESTDIR)$(INCDIR)/ $(INSTALL) -m0644 scheme/*.scm $(DESTDIR)$(DATADIR)/scheme $(INSTALL) -m0644 scheme/*.sld $(DESTDIR)$(DATADIR)/scheme $(INSTALL) -m0644 scheme/*.o $(DESTDIR)$(DATADIR)/scheme $(INSTALL) -m0644 scheme/cyclone/*.scm $(DESTDIR)$(DATADIR)/scheme/cyclone $(INSTALL) -m0644 scheme/cyclone/*.sld $(DESTDIR)$(DATADIR)/scheme/cyclone $(INSTALL) -m0644 scheme/cyclone/*.o $(DESTDIR)$(DATADIR)/scheme/cyclone uninstall: $(RM) $(DESTDIR)$(BINDIR)/cyclone $(RM) $(DESTDIR)$(BINDIR)/icyc $(RM) $(DESTDIR)$(LIBDIR)/libcyclone.a $(RM) $(DESTDIR)$(INCDIR)/*.* $(RMDIR) $(DESTDIR)$(INCDIR) $(RM) $(DESTDIR)$(DATADIR)/scheme/cyclone/*.* $(RMDIR) $(DESTDIR)$(DATADIR)/scheme/cyclone $(RM) $(DESTDIR)$(DATADIR)/scheme/*.* $(RMDIR) $(DESTDIR)$(DATADIR)/scheme $(RMDIR) $(DESTDIR)$(DATADIR)