1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
CC=gcc
CPP=g++
CFLAGS:="-std=c++0x" "-Wall" "-g" -fpic
C_HEADERS:=$(wildcard src/*.h)
C_FILES:=$(wildcard src/*.cpp)
TEST_H:=$(wildcard demo/*.h)
TEST_C:=$(wildcard demo/*.cpp)
OBJECTS:=$(addsuffix .o, $(basename $(C_FILES)))
TEST_OBJECTS:=$(addsuffix .o, $(basename $(TEST_C)))
INSTALL_PREFIX=/usr/local
VERSION=0.1
ARCHIVE_FORMAT=tar.gz
MKDIR=mkdir -p
RM=rm -r
all: libnoslib.so test
#### lib
libnoslib.so: prepareDir $(OBJECTS)
$(CPP) -shared $(CFLAGS) $(OBJECTS) $(LIBS) $(LIB_DIRS) $(INCLUDE_DIRS) -o ./bin/$@
$(OBJECTS): %.o: %.cpp
#### test
check: test
./bin/test
test: libnoslib.so $(TEST_OBJECTS)
$(CPP) $(CFLAGS) $(TEST_OBJECTS) ./bin/libnoslib.so $(INCLUDE_DIRS) -o ./bin/$@
$(TEST_OBJECTS): %.o: %.cpp
#### install
install: prepare_install
install ./bin/libnoslib.so $(INSTALL_PREFIX)/lib/libnoslib.so
install ./N0Slib-install.h $(INSTALL_PREFIX)/include/N0Slib.h
install $(C_HEADERS) $(INSTALL_PREFIX)/include/noslib/
prepare_install: patch_include_file
$(MKDIR) $(INSTALL_PREFIX)/include/noslib
$(MKDIR) $(INSTALL_PREFIX)/lib
patch_include_file:
cp N0Slib.h N0Slib-install.h
sed -i s/src/noslib/ N0Slib-install.h
#### release
archive:
git archive --format=$(ARCHIVE_FORMAT) --prefix=noslib/ HEAD > noslib-$(VERSION).$(ARCHIVE_FORMAT)
publish_release: archive
scp noslib-$(VERSION).$(ARCHIVE_FORMAT) "nee@pictor.uberspace.de:/var/www/virtual/nee/hidamari.blue/git/noslib/release/"
#### util
%.o: %.cpp
$(CC) $(DEFINES) $(CFLAGS) -c $< -o $@
prepareDir:
$(MKDIR) ./bin/
clean:
$(RM) $(OBJECTS) ./bin/ N0Slib-install.h