aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile62
1 files changed, 40 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index 04fd16d..719b3bc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,47 +1,65 @@
.POSIX:
+LIB_MAJOR = 1
+LIB_MINOR = 0
+LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
+
+
CONFIGFILE = config.mk
include $(CONFIGFILE)
-VERSION_MAJOR = 1
-VERSION = 1.0
+OS = linux
+# Linux: linux
+# Mac OS: macos
+# Windows: windows
+include mk/$(OS).mk
+
+
+OBJ =\
+ solar.o\
+ blackbody.o
-all: libred.a libred.so
-solar.o: solar.c libred.h
-blackbody.o: blackbody.c 10deg-xy.i 10deg-rgb.i libred.h
+LOBJ = $(OBJ:.o=.lo)
+
+
+all: libred.a libred.$(LIBEXT)
+solar.o: libred.h
+blackbody.o: 10deg-xy.i 10deg-rgb.i libred.h
+generate-table.o: blackbody.c 10deg-xy.i libred.h
10deg-xy.i: 10deg
sed -e 's/^/{/' -e 's/ /, /' -e 's/$$/},/' < 10deg | sed '$$s/,$$//' > $@
-generate-table: generate-table.c blackbody.c 10deg-xy.i libred.h
- $(CC) -o $@ generate-table.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
-
10deg-rgb.i: generate-table 10deg
./generate-table > $@
+.o:
+ $(CC) -o $@ $< $(LDFLAGS)
+
.c.o:
- $(CC) -c -o $@ $< $(CPPFLAGS) $(CFLAGS)
+ $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
.c.lo:
- $(CC) -fPIC -c -o $@ $< $(CPPFLAGS) $(CFLAGS)
+ $(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
-libred.a: solar.o blackbody.o
- $(AR) rc $@ $?
+libred.a: $(OBJ)
+ -@rm -f -- $@
+ $(AR) rc $@ $(OBJ)
$(AR) s $@
-libred.so: solar.lo blackbody.lo
- $(CC) -shared -Wl,-soname,libred.so.$(VERSION_MAJOR) -o $@ $(LDFLAGS) solar.lo blackbody.lo
+libred.$(LIBEXT): $(LOBJ)
+ $(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)
-install: libred.a libred.so
+install: libred.a libred.$(LIBEXT)
mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
mkdir -p -- "$(DESTDIR)$(PREFIX)/include"
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man0"
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man3"
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man7"
cp -- libred.a "$(DESTDIR)$(PREFIX)/lib"
- cp -- libred.so "$(DESTDIR)$(PREFIX)/lib/libred.so.$(VERSION_MAJOR)"
- ln -sf -- libred.so.$(VERSION_MAJOR) "$(DESTDIR)$(PREFIX)/lib/libred.so.$(VERSION)"
- ln -sf -- libred.so.$(VERSION_MAJOR) "$(DESTDIR)$(PREFIX)/lib/libred.so"
+ cp -- libred.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBMINOREXT)"
+ ln -sf -- libred.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBMAJOREXT)"
+ ln -sf -- libred.$(LIBMAJOREXT) "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBEXT)"
cp -- libred.h "$(DESTDIR)$(PREFIX)/include"
cp -- libred.h.0 "$(DESTDIR)$(MANPREFIX)/man0"
cp -- libred_check_timetravel.3 libred_get_colour.3 libred_solar_elevation.3 "$(DESTDIR)$(MANPREFIX)/man3"
@@ -49,9 +67,9 @@ install: libred.a libred.so
uninstall:
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.a"
- -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.so.$(VERSION_MAJOR)"
- -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.so.$(VERSION)"
- -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.so"
+ -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBMAJOREXT)"
+ -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBMINOREXT)"
+ -rm -f -- "$(DESTDIR)$(PREFIX)/lib/libred.$(LIBEXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/include/libred.h"
-rm -f -- "$(DESTDIR)$(MANPREFIX)/man0/libred.h.0"
-rm -f -- "$(DESTDIR)$(MANPREFIX)/man3/libred_check_timetravel.3"
@@ -60,7 +78,7 @@ uninstall:
-rm -f -- "$(DESTDIR)$(MANPREFIX)/man7/libred.7"
clean:
- -rm -f -- generate-table *.i *.o *.a *.lo *.su *.so
+ -rm -f -- generate-table *.i *.o *.a *.lo *.su *.so *.dll *.dylib
.SUFFIXES:
.SUFFIXES: .c .o .lo