a2533b6fe8506d7c88c7330a12854e75287938b4
Stefan Schuermans v1.0.0

Stefan Schuermans authored 13 years ago

1) # FlexiPix library
Stefan Schuermans v1.0.3

Stefan Schuermans authored 13 years ago

2) # !version: 1.0.3! !date: 2010-09-12!
Stefan Schuermans v1.0.0

Stefan Schuermans authored 13 years ago

3) #
4) # Copyright 2010 Stefan Schuermans <stefan schuermans info>
5) #
6) # This program is free software: you can redistribute it and/or modify
7) # it under the terms of the GNU General Public License as published by
8) # the Free Software Foundation, version 3 of the License.
9) #
10) #
11) # This program is distributed in the hope that it will be useful,
12) # but WITHOUT ANY WARRANTY; without even the implied warranty of
13) # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14) # GNU General Public License for more details.
15) #
16) # You should have received a copy of the GNU Lesser General Public License
17) # along with this program. If not, see <http://www.gnu.org/licenses/>.
18) 
19) LIBTARGET=libflexipix
20) VER=1
21) VERMIN=0
Stefan Schuermans v1.0.3

Stefan Schuermans authored 13 years ago

22) VERREV=3
Stefan Schuermans v1.0.0

Stefan Schuermans authored 13 years ago

23) 
24) SRCS=$(wildcard src/*.c)
25) EX_SRCS=$(wildcard examples/src/*.c)
26) 
27) CC=gcc
28) AR=ar
29) RANLIB=ranlib
30) INSTALL=install
31) 
32) CFLAGS=-W -Wall -fPIC -O3
33) DEFINES=-DFLP_VER_MAJ=$(VER) -DFLP_VER_MIN=$(VERMIN) -DFLP_VER_REV=$(VERREV)
34) INCLUDES=-Iinclude
35) LDFLAGS=-Llib
36) LIBS=-lm -lpthread -lflexipix
37) 
38) SRCS_BASE=$(patsubst %.c,%,$(SRCS))
39) DEPS=$(addsuffix .d,$(SRCS_BASE))
40) OBJS=$(addsuffix .o,$(SRCS_BASE))
41) EX_SRCS_BASE=$(patsubst %.c,%,$(EX_SRCS))
42) EX_DEPS=$(addsuffix .d,$(EX_SRCS_BASE))
43) EX_OBJS=$(addsuffix .o,$(EX_SRCS_BASE))
44) EX_TARGETS=$(EX_SRCS_BASE)
45) 
46) LIBTGA = lib/$(LIBTARGET).a
47) LIBTGSO = lib/$(LIBTARGET).so.$(VER)
48) LIBTGSOM = $(LIBTGSO).$(VERMIN)
49) LIBTGSOR = $(LIBTGSOM).$(VERREV)
50) 
51) VERSION = $(VER).$(VERMIN).$(VERREV)
52) DATE := $(shell date +%Y-%m-%d)
53) PACKNAME = $(LIBTARGET)-$(VERSION)_$(DATE)
54) PACKDATA = ChangeLog COPYING COPYING.LESSER Makefile \
55)            examples include README src
56) 
57) ENV_PREFIX=$(shell echo $$PREFIX)
58) STOW_DIR=/usr/local/stow
59) STOW_PREFIX=$(STOW_DIR)/$(PACKNAME)
60) DEF_PREFIX=/usr/local
61) ifneq ($(ENV_PREFIX),)
62)   PREFIX=$(ENV_PREFIX)
63) else
64)   ifeq ($(shell if [ -d $(STOW_DIR) ]; then echo stow; fi),stow)
65)     PREFIX=$(STOW_PREFIX)
66)   else
67)     PREFIX=$(DEF_PREFIX)
68)   endif
69) endif
70) 
71) .PHONY: all clean pack install uninstall
72) .SECONDARY:
73) .SUFFIXES:
74) 
75) all: deps $(LIBTGA) $(LIBTGSO) $(EX_TARGETS)
76) 
77) ifneq ($(MAKECMDGOALS),clean)
78)   include deps
79) endif
80) 
81) deps: $(DEPS) $(EX_DEPS)
82) 	cat /dev/null $+ >$@
83) 
84) %.d: %.c
85) 	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -M -o $@ $<
86) 	sed -i 's!^$(basename $(notdir $<))!$(dir $<)&!' $@
87) 
88) %.o: %.c
89) 	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -c -o $@ $<
90) 
91) %: %.o $(LIBTGA) $(LIBTGSO)
92) 	$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
93) 
94) lib:
95) 	mkdir -p lib
96) 
97) $(LIBTGA): $(OBJS) lib
98) 	$(AR) cr $@ $(filter-out lib,$+)
99) 	$(RANLIB) $@
100) 
101) $(LIBTGSOR): $(OBJS)
102) 	$(CC) -shared -Wl,-soname,$(LIBTARGET).so.$(VER) $(LDFLAGS) \
103) 	      -o $@ $+
104) 
105) $(LIBTGSOM): $(LIBTGSOR)
106) 	rm -f $@
107) 	ln -s $(notdir $<) $@
108) 
109) $(LIBTGSO): $(LIBTGSOM)
110) 	rm -f $@
111) 	ln -s $(notdir $<) $@
112) 
113) clean:
Stefan Schuermans v1.0.1

Stefan Schuermans authored 13 years ago

114) 	rm -rf deps $(DEPS) $(OBJS) lib \
115) 	       $(EX_DEPS) $(EX_OBJS) $(EX_TARGETS) \
Stefan Schuermans v1.0.0

Stefan Schuermans authored 13 years ago

116) 	       pack
117) 
118) pack:
119) 	$(MAKE) clean
120) 	$(MAKE)
121) 	$(MAKE) clean
122) 	mkdir -p pack/$(PACKNAME)
123) 	cp -r $(PACKDATA) pack/$(PACKNAME)
Stefan Schuermans v1.0.3

Stefan Schuermans authored 13 years ago

124) 	sed -i 's/!version: 1.0.3!]*!/!version: 1.0.3!/g' $$(find pack -type f)
125) 	sed -i 's/!date: 2010-09-12!]*!/!date: 2010-09-12!/g' $$(find pack -type f)