-
Notifications
You must be signed in to change notification settings - Fork 5
/
Makefile
114 lines (87 loc) · 3.02 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
.PHONY: all pkg release clean realclean
src := src
include $(src)/App.properties
all: pkg
# On Windows, build using msbuild/vcbuild in order to keep the solution current.
ifdef VSINSTALLDIR
rdir := java\WebContent\client
CFG := Release
CPUARCH := Windows_i386
TGTARCH := $(CPUARCH)
PKG := ao-$(TGTARCH).zip
FILES := ao.exe LibAO.dll CPCI.dll ao.properties-sample # AO
pkg release:
rm -f $(rdir)/$(PKG)
cd $(src) && $(MAKE) CFG=$(CFG) $@
xcopy /Y etc\ao.properties-windows $(src)\.$(TGTARCH)\$(CFG)\ao.properties-sample
del /F/Q/S $(src)\.$(TGTARCH)\$(CFG)\AO
xcopy /Y/S/F/I $(src)\pl\AO $(src)\.$(TGTARCH)\$(CFG)\AO
cd $(src)\.$(TGTARCH)\$(CFG) && zip -rD ..\..\..\$(rdir)\$(PKG) $(FILES)
else #VSINSTALLDIR
rdir := java/WebContent/client
GTAR := gtar --owner=0 --group=0 --mode=u+rw --dereference
SRCS := $(src)/*.[ch] \
$(src)/*.linkmap \
$(src)/About/about.c \
$(src)/Interposer/*.* \
$(src)/Putil/*.* \
$(src)/Zip \
$(src)/pl \
$(src)/Makefile \
$(src)/DOXYFILE \
$(src)/.indent.pro \
$(src)/App.properties
CPUARCH := $(OS_CPU)
TGTARCH ?= $(CPUARCH)
SPKG := $(rdir)/ao-client-src.tar.gz
$(SPKG): $(wildcard $(SRCS))
$(GTAR) --exclude=win.c --exclude='*/Windows*' \
--exclude='/zlib/*' \
--exclude-vcs --exclude-backups \
--transform='s%^%AO-$(APPLICATION_VERSION)/%' \
-czf $@ \
OPS/README \
OPS/*/build-for-ao* \
OPS/kazlib/*.tar.gz \
OPS/tinycdb/*.tar.gz \
OPS/trio/*.tar.gz \
$(src)/tst \
$(SRCS)
ifneq (,$(findstring Linux,${TGTARCH})) ## LINUX
ifneq (,$(findstring _x86_64,${TGTARCH}))
OSVER := $(shell /lib64/libc.so.6 | perl -nle 'print((split m%[ ,]+%)[6]); last')
else
OSVER := $(shell /lib/libc.so.6 | perl -nle 'print((split m%[ ,]+%)[6]); last')
endif
PKGS := $(rdir)/ao-Linux_i386-${OSVER}.tar.gz $(rdir)/ao-Linux_x86_64-${OSVER}.tar.gz
$(rdir)/ao-Linux_i386-${OSVER}.tar.gz: TGTARCH := Linux_i386
$(rdir)/ao-Linux_x86_64-${OSVER}.tar.gz: TGTARCH := Linux_x86_64
pkg release:
else ## ELSE NOT LINUX
OSVER := $(shell uname -r)
PKGS := $(rdir)/ao-${TGTARCH}-${OSVER}.tar.gz
endif ## LINUX
pkg release: $(PKGS)
FILES := lib/libAO.so bin/ao bin/ao2make bin/aoquery lib/perl5/AO \
man/man1/ao.1 etc/ao.properties-sample etc/ao.mk
ifeq (SunOS_,$(findstring SunOS_,${TGTARCH}))
FILES := lib/64/libAO.so $(FILES)
else ifeq (Linux_,$(findstring Linux_,${TGTARCH}))
FILES := lib64/libAO.so $(FILES)
endif
$(PKGS): $(wildcard $(SRCS))
cd $(src) && $(MAKE) -s rt TGTARCH=$(TGTARCH)
mkdir -p ${HOME}/${TGTARCH}/etc ${HOME}/${TGTARCH}/man/man1 &&\
cp etc/ao.properties-unix ${HOME}/${TGTARCH}/etc/ao.properties-sample &&\
chmod 644 ${HOME}/${TGTARCH}/etc/ao.* &&\
cp etc/ao.mk ${HOME}/${TGTARCH}/etc/ao.mk &&\
mkdir -p ${HOME}/${TGTARCH}/man/man1 &&\
pod2man --center="Audited Objects Client" --release="AO" \
man/ao.pod ${HOME}/${TGTARCH}/man/man1/ao.1 &&\
cd ${HOME}/${TGTARCH} && \
$(GTAR) -czf $(CURDIR)/$@ $(FILES)
clean:
rm -f $(PKGS)
realclean:
$(RM) $(rdir)/*.gz $(rdir)/*.zip
endif #VSINSTALLDIR