metasurf

annotate Makefile.in @ 4:2c575855f707

added simple example
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 25 Oct 2011 23:21:32 +0300
parents 7aa4627e492b
children dedd153d2ceb
rev   line source
nuclear@0 1 src = $(wildcard src/*.c)
nuclear@0 2 obj = $(src:.c=.o)
nuclear@0 3 dep = $(obj:.o=.d)
nuclear@0 4
nuclear@0 5 hdr = metasurf.h
nuclear@0 6
nuclear@0 7 name = metasurf
nuclear@0 8 lib_a = lib$(name).a
nuclear@0 9 somajor = 0
nuclear@0 10 sominor = 1
nuclear@0 11
nuclear@0 12 ifeq ($(shell uname -s), Darwin)
nuclear@0 13 lib_so = $(name).dylib
nuclear@0 14 shared = -dynamiclib
nuclear@0 15 else
nuclear@0 16 devlink = lib$(name).so
nuclear@0 17 soname = $(devlink).$(somajor)
nuclear@0 18 lib_so = $(soname).$(sominor)
nuclear@0 19 shared = -shared -Wl,-soname=$(soname)
nuclear@0 20 pic = -fPIC
nuclear@0 21 endif
nuclear@0 22
nuclear@0 23 CC = gcc
nuclear@0 24 AR = ar
nuclear@0 25 CFLAGS = -pedantic -Wall $(dbg) $(opt) $(pic)
nuclear@0 26
nuclear@0 27 .PHONY: all
nuclear@0 28 all: $(lib_so) $(lib_a)
nuclear@0 29
nuclear@0 30 $(lib_so): $(obj)
nuclear@0 31 $(CC) -o $@ $(shared) $(LDFLAGS)
nuclear@0 32
nuclear@0 33 $(lib_a): $(obj)
nuclear@0 34 $(AR) rcs $@ $(obj)
nuclear@0 35
nuclear@0 36 -include $(dep)
nuclear@0 37
nuclear@0 38 %.d: %.c
nuclear@0 39 @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
nuclear@0 40
nuclear@0 41 .PHONY: clean
nuclear@0 42 clean:
nuclear@0 43 rm -f $(obj) $(lib_a) $(lib_so) $(dep)
nuclear@0 44
nuclear@0 45 .PHONY: cleandep
nuclear@0 46 cleandep:
nuclear@0 47 rm -f $(dep)
nuclear@0 48
nuclear@0 49 .PHONY: install
nuclear@0 50 install:
nuclear@0 51 mkdir -p $(PREFIX)/include $(PREFIX)/lib
nuclear@0 52 cp src/$(hdr) $(PREFIX)/include/$(hdr)
nuclear@0 53 cp $(lib_so) $(PREFIX)/lib/$(lib_so)
nuclear@0 54 [ -n "$(soname)" ] \
nuclear@4 55 && rm -f $(PREFIX)/lib/$(soname) $(PREFIX)/lib/$(devlink) \
nuclear@0 56 && ln -s $(PREFIX)/lib/$(lib_so) $(PREFIX)/lib/$(soname) \
nuclear@0 57 && ln -s $(PREFIX)/lib/$(soname) $(PREFIX)/lib/$(devlink) \
nuclear@0 58 || true
nuclear@0 59
nuclear@0 60 .PHONY: uninstall
nuclear@0 61 uninstall:
nuclear@0 62 rm -f $(PREFIX)/include/$(hdr)
nuclear@0 63 rm -f $(PREFIX)/lib/$(lib_so)
nuclear@0 64 [ -n "$(soname)" ] \
nuclear@0 65 && rm -f $(PREFIX)/lib/$(soname) $(PREFIX)/lib/$(devlink) \
nuclear@0 66 || true