782
[darwin-xtools.git] / cctools / efitools / Makefile
blob02ca1de6a1ce045be8ef9a2e492452e592687353
1 export USE_APPLE_PB_SUPPORT = all
2 OFLAG = -Os
3 RC_OS = macos
4 X_CFLAGS =
5 ifneq "" "$(SDKROOT)"
6 SDK = -isysroot $(SDKROOT)
7 CC = $(shell xcrun -find -sdk $(SDKROOT) cc)
8 endif
10 ifeq "clang" "$(notdir $(CC))"
11 CFLAGS = $(OFLAG) -g -Wall \
12 -I$(SRCROOT) -I$(SRCROOT)/../include -I$(OFILE_DIR) $(SDK)
13 else
14 CFLAGS = $(OFLAG) -g -Wall $(X_CFLAGS) \
15 -I$(SRCROOT) -I$(SRCROOT)/../include -I$(OFILE_DIR) $(SDK)
16 endif
18 USE_DEPENDENCY_FILE := $(shell if [ "$(notdir $(CC))" != "mwccppc" ] && \
19 [ "$(RC_XBS)" != "YES" ]; then \
20 echo YES ; else echo NO ; \
21 fi; )
23 LIBSTUFF = -L$(SYMROOT)/../libstuff -lstuff
25 ifneq "" "$(wildcard /bin/mkdirs)"
26 MKDIRS = /bin/mkdirs
27 else
28 MKDIRS = /bin/mkdir -p
29 endif
31 SRCROOT = .
32 OBJROOT = .
33 OFILE_DIR = $(OBJROOT)
34 VPATH = $(OFILE_DIR)
35 SYMROOT = .
37 EFIBINDIR = /usr/local/efi/bin
39 CFILES = makerelocs.c mtoc.c
41 INSTALL_FILES = $(CFILES) Makefile notes
43 PROGS = makerelocs.NEW mtoc.NEW
45 all: $(OFILE_DIR) $(SYMROOT) $(PROGS)
47 vers.c:
48 vers_string -c $(VERS_STRING_FLAGS) cctools_efi > $(OFILE_DIR)/$@
49 echo "const char apple_version[]= " \"`vers_string $(VERS_STRING_FLAGS) -f cctools`\" ";" >> \
50 $(OFILE_DIR)/$@
52 ifeq "NO" "$(USE_DEPENDENCY_FILE)"
53 .c.o:
54 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -o $(OFILE_DIR)/$*.o $<
55 else
56 .c.o:
57 $(CC) $(CFLAGS) $(RC_CFLAGS) -c -MD -dependency-file \
58 $(OFILE_DIR)/$*.d -o $(OFILE_DIR)/$*.o $<
59 md -d -u $(OFILE_DIR)/Makedep $(OFILE_DIR)/$*.d
60 endif
62 makerelocs.NEW: makerelocs.o vers.o
63 $(CC) $(RC_CFLAGS) -nostdlib -r \
64 -o $(OBJROOT)/makerelocs.private.o \
65 $(OFILE_DIR)/makerelocs.o $(OFILE_DIR)/vers.o $(LIBSTUFF)
66 $(CC) $(RC_CFLAGS) $(SDK) -o $(SYMROOT)/makerelocs.NEW \
67 $(OFILE_DIR)/makerelocs.private.o
69 mtoc.NEW: mtoc.o vers.o
70 $(CC) $(RC_CFLAGS) -nostdlib -r \
71 -o $(OBJROOT)/mtoc.private.o \
72 $(OFILE_DIR)/mtoc.o $(OFILE_DIR)/vers.o $(LIBSTUFF)
73 $(CC) $(RC_CFLAGS) $(SDK) -o $(SYMROOT)/mtoc.NEW \
74 $(OFILE_DIR)/mtoc.private.o
76 clean: shlib_clean
77 -rm -f \
78 $(SYMROOT)/makerelocs.NEW \
79 $(SYMROOT)/mtoc.NEW
81 shlib_clean:
82 -rm -f \
83 $(OFILE_DIR)/vers.c \
84 $(OFILE_DIR)/vers.o \
85 $(OFILE_DIR)/makerelocs.o \
86 $(OFILE_DIR)/makerelocs.private.o \
87 $(OFILE_DIR)/mtoc.o \
88 $(OFILE_DIR)/mtoc.private.o
89 -rm -f $(OFILE_DIR)/Makedep make.out
91 install: all install
93 install:
94 $(MKDIRS) $(DSTROOT)$(EFIBINDIR)
95 # For now don't overwrite the existing makerelocs program the efitools project
96 # builds.
97 # install -c -s -m 555 $(SYMROOT)/makerelocs.NEW \
98 # $(DSTROOT)$(EFIBINDIR)/makerelocs
99 install -c -s -m 555 $(SYMROOT)/mtoc.NEW \
100 $(DSTROOT)$(EFIBINDIR)/mtoc
102 installsrc:
103 $(MKDIRS) $(SRCROOT)
104 chmod 755 $(SRCROOT)
105 gnutar cf - $(INSTALL_FILES) | (cd $(SRCROOT); gnutar xf -)
106 chmod 444 $(SRCROOT)/*
108 $(OFILE_DIR) $(SYMROOT):
109 $(MKDIRS) $@
111 -include $(OFILE_DIR)/Makedep