mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 05:39:17 +02:00
92 lines
3.3 KiB
Text
92 lines
3.3 KiB
Text
# 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 *.o *.a *.so cyclone icyc unit-tests test.out test.txt scheme/*.o scheme/cyclone/*.o icyc.c unit-tests.c
|
|
|
|
# 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-cyclone:
|
|
$(MKDIR) $(DESTDIR)$(DATADIR)/scheme/cyclone
|
|
$(INSTALL) -m0755 cyclone $(DESTDIR)$(BINDIR)/
|
|
$(INSTALL) -m0644 scheme/*.o $(DESTDIR)$(DATADIR)/scheme
|
|
$(INSTALL) -m0644 scheme/cyclone/*.o $(DESTDIR)$(DATADIR)/scheme/cyclone
|
|
|
|
# Install everything. Can not call this directly initially as
|
|
# dependencies are required by portions of the build.
|
|
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)
|
|
|