From 85cd55bbbf25f382fc1749a7524059bd733868d3 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 16 Jul 2015 21:51:59 -0400 Subject: [PATCH] Working on install/uninstall directives --- Makefile | 30 +++++++++++++++++++++++++++--- Makefile-bootstrap | 8 +++++--- Makefile.config | 4 ++-- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 3d285257..d4082be5 100644 --- a/Makefile +++ b/Makefile @@ -55,8 +55,8 @@ libcyclone.so.1: runtime.c runtime.h gcc -g -c -fPIC runtime.c -o runtime.o gcc -shared -Wl,-soname,libcyclone.so.1 -o libcyclone.so.1.0.1 runtime.o libcyclone.a: runtime.c runtime.h dispatch.c - gcc -g -c dispatch.c -o dispatch.o - gcc -g -c runtime.c -o runtime.o + $(CC) -g -c dispatch.c -o dispatch.o + $(CC) -g -c runtime.c -o runtime.o $(AR) rcs libcyclone.a runtime.o dispatch.o # Instructions from: http://www.adp-gmbh.ch/cpp/gcc/create_lib.html # Note compiler will have to link to this, eg: @@ -116,6 +116,7 @@ bootstrap: cp runtime-main.h tmp cp runtime.h tmp cp runtime.c tmp + cp dispatch.c tmp cp scheme/base.c tmp/scheme cp scheme/read.c tmp/scheme cp scheme/write.c tmp/scheme @@ -131,6 +132,7 @@ bootstrap: cp scheme/cyclone/util.c tmp/scheme/cyclone cp cyclone-self.c tmp/cyclone.c cp Makefile-bootstrap tmp/Makefile + cp Makefile.config tmp/Makefile.config .PHONY: test @@ -171,12 +173,34 @@ clean: rm -rf a.out *.o *.so *.a *.out tags cyclone icyc scheme/*.o scheme/*.c $(foreach f,$(TESTSCM), rm -rf $(f) $(f).c tests/$(f).c;) -install: all +#install: all +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 *.h $(DESTDIR)$(INCDIR)/ + $(INSTALL) scheme/*.sld $(DESTDIR)$(DATADIR)/scheme + $(INSTALL) scheme/*.c $(DESTDIR)$(DATADIR)/scheme + $(INSTALL) scheme/*.o $(DESTDIR)$(DATADIR)/scheme + $(INSTALL) scheme/cyclone/*.sld $(DESTDIR)$(DATADIR)/scheme/cyclone + $(INSTALL) scheme/cyclone/*.c $(DESTDIR)$(DATADIR)/scheme/cyclone + $(INSTALL) scheme/cyclone/*.o $(DESTDIR)$(DATADIR)/scheme/cyclone uninstall: $(RM) $(DESTDIR)$(BINDIR)/cyclone $(RM) $(DESTDIR)$(BINDIR)/icyc + $(RM) $(DESTDIR)$(LIBDIR)/*.* + $(RMDIR) $(DESTDIR)$(LIBDIR) + $(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) diff --git a/Makefile-bootstrap b/Makefile-bootstrap index c5be7f20..fdd6ce69 100644 --- a/Makefile-bootstrap +++ b/Makefile-bootstrap @@ -4,7 +4,8 @@ # # Makefile for bootstrapping cyclone from generated C files. -CC = gcc +include Makefile.config + CFLAGS = -g -I. LIBS = -lcyclone -lm @@ -17,9 +18,10 @@ COBJECTS=$(CFILES:.c=.o) all: cyclone icyc unit-tests -libcyclone.a: runtime.c runtime.h +libcyclone.a: runtime.c runtime.h dispatch.c + $(CC) -g -c dispatch.c -o dispatch.o $(CC) -g -c runtime.c -o runtime.o - ar rcs libcyclone.a runtime.o + $(AR) rcs libcyclone.a runtime.o dispatch.o cyclone: $(COBJECTS) libcyclone.a $(CC) cyclone.c $(CFLAGS) -c -o cyclone.o diff --git a/Makefile.config b/Makefile.config index c9a8c233..0888da3a 100644 --- a/Makefile.config +++ b/Makefile.config @@ -14,8 +14,8 @@ RMDIR ?= rmdir PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin -LIBDIR ?= $(PREFIX)/lib +LIBDIR ?= $(PREFIX)/lib/cyclone INCDIR ?= $(PREFIX)/include/cyclone -SLDDIR ?= $(PREFIX)/share/cyclone +DATADIR ?= $(PREFIX)/share/cyclone DESTDIR ?=