]>
Commit | Line | Data |
---|---|---|
3f2457aa | 1 | SHELL := /bin/sh |
1bd2040a | 2 | SDKROOT ?= / |
3f2457aa A |
3 | |
4 | VERSION = 1.0 | |
1bd2040a A |
5 | CC = xcrun cc |
6 | CPP = xcrun c++ | |
3f2457aa | 7 | CPPFLAGS = -I$(SRCROOT) |
1bd2040a | 8 | CFLAGS = -Os -g3 -no-cpp-precomp -Wall $(RC_CFLAGS) -isysroot $(SDKROOT) |
3f2457aa | 9 | LDFLAGS = $(RC_CFLAGS) -install_name /usr/lib/libutil.dylib -compatibility_version $(VERSION) \ |
1bd2040a | 10 | -current_version $(VERSION) -lstdc++ -exported_symbols_list libutil.exports -isysroot $(SDKROOT) |
3f2457aa A |
11 | INSTALL = install -c |
12 | LN = ln | |
1bd2040a | 13 | MKDIR = mkdir -p |
3f2457aa | 14 | STRIP = strip |
1bd2040a | 15 | DSYMUTIL = dsymutil |
3f2457aa A |
16 | AR = ar |
17 | RANLIB = ranlib | |
18 | ||
19 | SRCROOT = . | |
20 | OBJROOT = $(SRCROOT) | |
21 | SYMROOT = $(OBJROOT) | |
22 | DSTROOT = | |
23 | ||
24 | LIB := libutil1.0.dylib | |
25 | SRCS := _secure_path.c getmntopts.c humanize_number.c \ | |
1bd2040a A |
26 | pidfile.c property.c realhostname.c trimdomain.c uucplock.c \ |
27 | ExtentManager.cpp wipefs.cpp reexec_to_match_kernel.c | |
28 | HDRS := libutil.h mntopts.h wipefs.h | |
3f2457aa | 29 | MAN3 := _secure_path.3 getmntopts.3 humanize_number.3 pidfile.3 \ |
1bd2040a A |
30 | property.3 realhostname.3 realhostname_sa.3 trimdomain.3 \ |
31 | uucplock.3 wipefs.3 reexec_to_match_kernel.3 | |
3f2457aa A |
32 | |
33 | .SUFFIXES : | |
1bd2040a | 34 | .SUFFIXES : .c .cpp .h .o |
3f2457aa A |
35 | |
36 | .PHONY : | |
37 | .PHONY : all installsrc installhdrs install clean installlib installman | |
38 | ||
39 | all : $(SYMROOT)/$(LIB) | |
40 | ||
41 | # | |
42 | # xbs targets. | |
43 | # | |
44 | installsrc : | |
45 | @if test ! -d $(SRCROOT); then \ | |
46 | echo "$(INSTALL) -d $(SRCROOT)"; \ | |
47 | $(INSTALL) -d $(SRCROOT); \ | |
48 | fi | |
49 | tar cf - . | (cd $(SRCROOT); tar xpf -) | |
50 | @for i in `find $(SRCROOT) | grep "/\.svn$$"`; do \ | |
51 | if test -d $$i ; then \ | |
52 | echo "rm -rf $$i"; \ | |
53 | rm -rf $$i; \ | |
54 | fi; \ | |
55 | done | |
56 | ||
57 | installhdrs : | |
58 | $(INSTALL) -d $(DSTROOT)/usr/local/include | |
59 | $(INSTALL) -m 0644 $(HDRS) $(DSTROOT)/usr/local/include | |
60 | ||
61 | ||
62 | install : installhdrs installlib strip installman install-plist | |
63 | ||
64 | clean : | |
1bd2040a | 65 | rm -f $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS))) |
3f2457aa A |
66 | rm -f $(SYMROOT)/*~ |
67 | rm -f $(SRCROOT)/.\#* | |
68 | rm -f $(SYMROOT)/$(LIB) | |
69 | ||
70 | strip: | |
71 | $(STRIP) -x -S $(DSTROOT)/usr/lib/$(LIB) | |
72 | ||
73 | # | |
74 | # Internal targets and rules. | |
75 | # | |
76 | installlib : $(SYMROOT)/$(LIB) | |
1bd2040a | 77 | $(DSYMUTIL) $(SYMROOT)/$(LIB) -o $(SYMROOT)/$(LIB).dSYM |
3f2457aa A |
78 | $(INSTALL) -d $(DSTROOT)/usr/lib |
79 | $(INSTALL) -m 0755 $< $(DSTROOT)/usr/lib | |
80 | $(LN) -fs libutil1.0.dylib $(DSTROOT)/usr/lib/libutil.dylib | |
81 | ||
82 | installman : | |
83 | $(INSTALL) -d $(DSTROOT)/usr/local/share/man/man3 | |
84 | @for i in $(MAN3); do\ | |
85 | echo "$(INSTALL) -m 0444 $(SRCROOT)/$$i $(DSTROOT)/usr/local/share/man/man3/"; \ | |
86 | $(INSTALL) -m 0444 $(SRCROOT)/$$i $(DSTROOT)/usr/local/share/man/man3; \ | |
87 | done | |
88 | ||
89 | $(OBJROOT)/%.o : $(SRCROOT)/%.c \ | |
90 | $(patsubst %.h,$(SRCROOT)/%.h,$(HDRS)) | |
91 | $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | |
92 | ||
1bd2040a A |
93 | $(OBJROOT)/%.o : $(SRCROOT)/%.cpp \ |
94 | $(patsubst %.h,$(SRCROOT)/%.h,$(HDRS)) | |
95 | $(CPP) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | |
96 | ||
97 | $(SYMROOT)/$(LIB) : $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS))) | |
98 | $(CC) -dynamiclib $(LDFLAGS) -o $@ $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS))) | |
3f2457aa A |
99 | |
100 | OSV = $(DSTROOT)/usr/local/OpenSourceVersions | |
101 | OSL = $(DSTROOT)/usr/local/OpenSourceLicenses | |
102 | ||
103 | install-plist: | |
104 | $(MKDIR) $(OSV) | |
105 | $(INSTALL) $(SRCROOT)/libutil.plist $(OSV)/ | |
106 | $(MKDIR) $(OSL) | |
107 | $(INSTALL) $(SRCROOT)/libutil.txt $(OSL)/ |