This repository has been archived by the owner on Nov 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
74 lines (61 loc) · 2.19 KB
/
Makefile
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
69
70
71
72
73
74
lib.name = purest_json
OBJECTS = rest.c oauth.c json-decode.c json-encode.c urlparams.c
PDOBJECTS =
EXAMPLES = purest-json-test.pd the-sound-of-money.pd twitter-client.pd binary-test.pd
EXTRA_DIST = README.md LICENSE.txt Changelog.txt test.json
HELPPATCHES = json-help.pd urlparams-help.pd rest-help.pd
UNITTESTS =
datafiles = $(EXTRA_DIST) $(HELPPATCHES)
examplefiles = $(addprefix examples/, $(EXAMPLES))
class.sources = $(addprefix src/, $(OBJECTS))
uthash = src/uthash/src
# creating deken package
deken.bits = 32
deken.ext = dek
deken.pack = zip -9 -r
deken.tmp = deken-tmp
deken.folder = $(lib.name)
deken.dependencies =
multi_cflags =
ifeq ($(multi), true)
multi_cflags = -DPDINSTANCE
endif
cflags += -DVERSION='"$(lib.version)"' -I"$(uthash)" -std=c99 $(multi_cflags)
ldflags =
ldlibs = -lcurl -ljson-c -loauth
define forWindows
ldlibs += -lpthread -lm -lwldap32 -lssl -lssh2 -lbcrypt -lgcrypt -lgpg-error \
-lcrypto -lws2_32 -lgdi32 -lcrypt32 -lz -lidn2 -lunistring \
-latomic -lintl -liconv -lcharset
cflags += -mthreads -DCURL_STATICLIB
endef
define forDarwin
ldflags = $(patsubst %,-L%,$(wildcard /opt/homebrew/lib))
ldflags += "-L/usr/local/opt/curl/lib"
cflags += "-I/usr/local/opt/curl/include"
deken.dependencies = *.dylib
endef
define forLinux
deken.dependencies = *.so*
endef
lib.setup.sources = src/purest_json.c
PDLIBBUILDER_DIR=pd-lib-builder
include $(PDLIBBUILDER_DIR)/Makefile.pdlibbuilder
space := $(subst ,, )
deken.systems := $(foreach m,$(machine),($(system)-$(m)-$(deken.bits)))
deken.systemscleaned := $(subst $(space),,$(deken.systems))
deken.file := $(lib.name)[v$(lib.version)]$(deken.systemscleaned)
deken:
mkdir -p "$(deken.tmp)"
mkdir -p "$(deken.tmp)/$(deken.folder)"
cp $(executables) $(deken.dependencies) "$(deken.tmp)/$(deken.folder)/"
cp $(datafiles) "$(deken.tmp)/$(deken.folder)/"
mkdir -p "$(deken.tmp)/$(deken.folder)/examples"
cp -r manual "$(deken.tmp)/$(deken.folder)/"
cp $(examplefiles) "$(deken.tmp)/$(deken.folder)/examples"
cd "$(deken.tmp)"; \
$(deken.pack) "$(deken.file).$(deken.ext)" "$(deken.folder)"; \
rm -rf "$(deken.folder)"; \
mv "$(deken.file).$(deken.ext)" ..; \
clobber: clean
rm -f $(deken.dependencies)