809
[darwin-xtools.git] / cctools / otool / Makefile
blob80f2763a1857a39d11d6f5db295997f9411498f1
1 RC_OS = macos
2 export USE_APPLE_PB_SUPPORT = all
3 OFLAG = -Os
4 LEGACY = -D_MACH_I386_THREAD_STATUS_FPSTATE_LEGACY_FIELD_NAMES_ \
5 -D_ARCHITECTURE_I386_FPU_FPSTATE_LEGACY_FIELD_NAMES_
6 X_CFLAGS =
8 ifeq "macos" "$(RC_OS)"
9 STATIC := $(shell if [ "$(RC_RELEASE)" = "Beaker" ] || \
10 [ "$(RC_RELEASE)" = "Bunsen" ] || \
11 [ "$(RC_RELEASE)" = "Gonzo" ] || \
12 [ "$(RC_RELEASE)" = "Kodiak" ] || \
13 [ "$(RC_RELEASE)" = "Cheetah" ] || \
14 [ "$(RC_RELEASE)" = "Puma" ] || \
15 [ "$(RC_RELEASE)" = "Jaguar" ] || \
16 [ "$(RC_RELEASE)" = "Panther" ] || \
17 [ "$(RC_RELEASE)" = "MuonPrime" ] || \
18 [ "$(RC_RELEASE)" = "MuonSeed" ] || \
19 [ "$(RC_RELEASE)" = "SUPanWheat" ]; then \
20 echo "-static" ; \
21 else if [ "$(RC_RELEASE)" = "Tiger" ]; then \
22 echo "-static" ; \
23 else \
24 echo "" ; \
25 fi; fi; )
26 else
27 STATIC = -static
28 endif
30 ifeq "$(EFITOOLS)" "efitools"
31 EFI_SUPPORT = -DEFI_SUPPORT
32 endif
34 ifneq "" "$(SDKROOT)"
35 SDK = -isysroot $(SDKROOT)
36 CC = $(shell xcrun -find -sdk $(SDKROOT) cc)
37 CXX = $(shell xcrun -find -sdk $(SDKROOT) g++)
38 endif
40 ifeq "clang" "$(notdir $(CC))"
41 CFLAGS = $(STATIC) $(OFLAG) -g -Wall -I$(SRCROOT)/../include \
42 -I$(SRCROOT) $(LEGACY) $(EFI_SUPPORT) $(SDK)
43 else
44 CFLAGS = $(STATIC) $(OFLAG) -g -Wall -I$(SRCROOT)/../include \
45 -I$(SRCROOT) $(X_CFLAGS) $(LEGACY) $(EFI_SUPPORT) $(SDK)
46 endif
48 USE_DEPENDENCY_FILE := $(shell if [ "$(notdir $(CC))" != "mwccppc" ] && \
49 [ "$(RC_XBS)" != "YES" ]; then \
50 echo YES ; else echo NO ; \
51 fi; )
53 LIBSTUFF = -L$(SYMROOT)/../libstuff -lstuff
55 ifeq "macos" "$(RC_OS)"
56 SYSTEMDIR := $(shell if [ "$(RC_RELEASE)" = "Beaker" ] || \
57 [ "$(RC_RELEASE)" = "Bunsen" ] || \
58 [ "$(RC_RELEASE)" = "Gonzo" ]; then \
59 echo /Local/Developer/System; else echo /usr/local/lib/system; fi; )
60 else
61 SYSTEMDIR = /Local/Developer/System
62 endif
63 ifeq "macos" "$(RC_OS)"
64 LIBS := $(shell if [ "$(RC_RELEASE)" = "Beaker" ] || \
65 [ "$(RC_RELEASE)" = "Bunsen" ] || \
66 [ "$(RC_RELEASE)" = "Gonzo" ] || \
67 [ "$(RC_RELEASE)" = "Kodiak" ] || \
68 [ "$(RC_RELEASE)" = "Cheetah" ] || \
69 [ "$(RC_RELEASE)" = "Puma" ] || \
70 [ "$(RC_RELEASE)" = "Jaguar" ] || \
71 [ "$(RC_RELEASE)" = "Panther" ] || \
72 [ "$(RC_RELEASE)" = "MuonPrime" ] || \
73 [ "$(RC_RELEASE)" = "MuonSeed" ] || \
74 [ "$(RC_RELEASE)" = "SUPanWheat" ]; then \
75 echo "-L$(NEXT_ROOT)$(SYSTEMDIR) -lc_static" ; \
76 else if [ "$(RC_RELEASE)" = "Tiger" ]; then \
77 echo "-L$(NEXT_ROOT)$(SYSTEMDIR) -lc_static -lm_static" ; \
78 else \
79 echo "" ; \
80 fi; fi; )
81 else
82 LIBS = -lc_static
83 endif
85 ifneq "" "$(wildcard /bin/mkdirs)"
86 MKDIRS = /bin/mkdirs
87 else
88 MKDIRS = /bin/mkdir -p
89 endif
91 SRCROOT = .
92 SYMROOT = .
93 OBJROOT = .
94 OFILE_DIR = $(OBJROOT)
95 VPATH = $(OFILE_DIR)
97 BINDIR = /bin
98 USRBINDIR = /usr/bin
100 CFILES = main.c ofile_print.c m68k_disasm.c i860_disasm.c \
101 m88k_disasm.c i386_disasm.c ppc_disasm.c hppa_disasm.c \
102 sparc_disasm.c print_objc.c notify.c arm_disasm.c \
103 print_objc2_64bit.c print_objc2_32bit.c
104 ifeq "$(EFITOOLS)" "efitools"
105 CFILES += coff_print.c
106 endif
107 HFILES = otool.h ofile_print.h m68k_disasm.h i860_disasm.h \
108 sparc_disasm.h m88k_disasm.h i386_disasm.h ppc_disasm.h hppa_disasm.h \
109 notify.h arm_disasm.h
110 OBJS = $(CFILES:.c=.o) ofile.o vers.o
111 INSTALL_FILES = $(CFILES) $(HFILES) Makefile notes
113 PRODUCT = otool
114 all: $(OFILE_DIR) $(SYMROOT) $(PRODUCT).NEW
116 $(PRODUCT).NEW: $(OFILE_DIR) $(SYMROOT) $(OBJS)
117 $(CC) $(RC_CFLAGS) -nostdlib -r -o $(OBJROOT)/private.o \
118 $(OBJS) $(LIBSTUFF)
119 $(CXX) $(RC_CFLAGS) $(SDK) -o $(SYMROOT)/$@ $(OBJROOT)/private.o \
120 $(LIBSTUFF) $(LIBS)
122 vers.c:
123 vers_string -c $(VERS_STRING_FLAGS) $(PRODUCT) > $(OFILE_DIR)/$@
125 ifeq "NO" "$(USE_DEPENDENCY_FILE)"
126 .c.o:
127 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -o $(OFILE_DIR)/$*.o $<
128 else
129 .c.o:
130 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -MD -dependency-file $(OFILE_DIR)/$*.d \
131 -o $(OFILE_DIR)/$*.o $<
132 md -d -u $(OFILE_DIR)/Makedep $(OFILE_DIR)/$*.d
133 endif
135 ofile.o: $(SRCROOT)/../libstuff/ofile.c
136 ifeq "NO" "$(USE_DEPENDENCY_FILE)"
137 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -o $(OFILE_DIR)/$*.o \
138 $(SRCROOT)/../libstuff/ofile.c -DOTOOL
139 else
140 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -MD -dependency-file $(OFILE_DIR)/$*.d \
141 -o $(OFILE_DIR)/$*.o $(SRCROOT)/../libstuff/ofile.c -DOTOOL
142 md -d -u $(OFILE_DIR)/Makedep $(OFILE_DIR)/$*.d
143 endif
145 clean: shlib_clean
146 -rm -f $(SYMROOT)/$(PRODUCT).NEW $(OFILE_DIR)/vers.c
148 shlib_clean:
149 -cd $(OFILE_DIR); rm -f $(OBJS) private.o
150 -rm -f $(OFILE_DIR)/Makedep make.out
152 install: all $(RC_OS)_install
154 teflon_install macos_install:
155 $(MKDIRS) $(DSTROOT)$(USRBINDIR)
156 install -c -s -m 555 $(SYMROOT)/$(PRODUCT).NEW \
157 $(DSTROOT)$(USRBINDIR)/$(PRODUCT)
159 nextstep_install:
160 $(MKDIRS) $(DSTROOT)$(BINDIR)
161 install -c -s -m 555 $(SYMROOT)/$(PRODUCT).NEW \
162 $(DSTROOT)$(BINDIR)/$(PRODUCT)
164 installsrc:
165 $(MKDIRS) $(SRCROOT)
166 chmod 755 $(SRCROOT)
167 gnutar cf - $(INSTALL_FILES) | (cd $(SRCROOT); gnutar xf -)
168 chmod 444 $(SRCROOT)/*
170 $(OFILE_DIR) $(SYMROOT):
171 $(MKDIRS) $@
173 -include $(OFILE_DIR)/Makedep