Add support for -no_dylib and -no_dylib_unused
[striptease.git] / Makefile
blob401ba51415d67773e01fab1a94e2d6d62e285e98
1 # Makefile for striptease project
2 # Copyright (C) 2011 Kyle J. McKay. All rights reserved.
4 # Permission is hereby granted, free of charge, to any person obtaining a copy
5 # of this software and associated documentation files (the "Software"), to
6 # deal in the Software without restriction, including without limitation the
7 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 # sell copies of the Software, and to permit persons to whom the Software is
9 # furnished to do so, subject to the following conditions:
11 # The above copyright notice and this permission notice shall be included in
12 # all copies or substantial portions of the Software.
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 # Except as contained in this notice, the name of the author(s) shall not
22 # be used in advertising or otherwise to promote the sale, use or other
23 # dealings in this Software without prior written authorization from the
24 # author(s).
26 .PHONY : all clean
28 ifeq ($(DEBUG),)
29 DEBUG := 0
30 endif
32 export DEBUG
34 CC = gcc-4.0
35 CINC = -Iinclude
36 XSDK := $(shell xcode-select -print-path 2>/dev/null)/SDKs
37 ifeq ($(XSDK),/SDKs)
38 XSDK := /Developer/SDKs
39 endif
41 OSXNUVER := $(shell uname -r | cut -d. -f1)
43 ifeq ($(DEBUG),0)
44 $(shell mkdir -p build/Release/libstuff)
45 DD=build/Release/
46 COPTS=-Os
47 else
48 $(shell mkdir -p build/Debug/libstuff)
49 DD=build/Debug/
50 COPTS=-O0 -g
51 LDEXTRA=-g
52 endif
54 COPTS += -mmacosx-version-min=10.4
55 ifeq ($(OSXNUVER),8)
56 COPTS += -isysroot$(XSDK)/MacOSX10.4u.sdk
57 else
58 COPTS += -isysroot$(XSDK)/MacOSX10.5.sdk
59 endif
60 COPTS += -include preinc.h
61 ifneq ($(OSXNUVER),8)
62 COPTS += -arch x86_64
63 endif
64 COPTS += -arch i386 -arch ppc
66 LDOPTS = -Wl,-no_uuid
67 LDOPTS += -mmacosx-version-min=10.4
68 ifneq ($(OSXNUVER),8)
69 LDOPTS += -Xarch_x86_64 -mmacosx-version-min=10.5
70 endif
71 # The 10.4u SDK can be used, but do not require it except on 10.4.x
72 ifeq ($(OSXNUVER),8)
73 LDOPTS += -isysroot$(XSDK)/MacOSX10.4u.sdk
74 else
75 LDOPTS += -isysroot$(XSDK)/MacOSX10.5.sdk
76 endif
77 ifneq ($(OSXNUVER),8)
78 LDOPTS += -arch x86_64
79 endif
80 LDOPTS += -arch i386 -arch ppc
81 LDOPTS += $(LDEXTRA)
83 all : $(DD)tease
85 .PHONY : tease strip
87 tease : $(DD)tease
89 strip : $(DD)strip
91 LIBSTUFF_SRC := $(wildcard libstuff/*.c)
93 TEASE_SRC = \
94 tease.c \
95 version.c \
96 $(LIBSTUFF_SRC)
98 STRIP_SRC = \
99 strip.c \
100 version.c \
101 $(LIBSTUFF_SRC)
103 TEASE_OBJS = $(addprefix $(DD),$(TEASE_SRC:.c=.o))
105 STRIP_OBJS = $(addprefix $(DD),$(STRIP_SRC:.c=.o))
107 $(DD)%.o : %.c
108 $(CC) -Wall -c $(COPTS) $(CINC) -o $@ $<
110 $(DD)tease : $(TEASE_OBJS)
111 $(CC) -o $@ $(LDOPTS) $^
112 ifneq ($(DEBUG),0)
113 dsymutil $@
114 endif
116 $(DD)strip : $(STRIP_OBJS)
117 $(CC) -o $@ $(LDOPTS) $^
118 ifneq ($(DEBUG),0)
119 dsymutil $@
120 endif
122 clean :
123 rm -rf build