107 lines
3.5 KiB
Plaintext
107 lines
3.5 KiB
Plaintext
ifdef LLVM_CONFIG
|
|
LLVM_CPPFLAGS := -I$(shell $(LLVM_CONFIG) --includedir) -DLTO_SUPPORT
|
|
LLVM_LDFLAGS := -L$(shell $(LLVM_CONFIG) --libdir) -Wl,-rpath,$(shell $(LLVM_CONFIG) --libdir) -lLTO
|
|
endif
|
|
|
|
CPPFLAGS = $(LLVM_CPPFLAGS) -Isrc/abstraction -Isrc/ld -Isrc/ld/parsers $(OTHER_CPPFLAGS)
|
|
CFLAGS = -Os $(OTHER_CFLAGS)
|
|
CXXFLAGS = -Os $(OTHER_CXXFLAGS)
|
|
LDFLAGS = $(OTHER_LDFLAGS)
|
|
|
|
ifndef RANLIB
|
|
RANLIB = ranlib
|
|
endif
|
|
ifndef AR
|
|
AR = ar
|
|
endif
|
|
ifndef PREFIX
|
|
PREFIX = /usr
|
|
endif
|
|
|
|
# libprunetrie.a
|
|
all : src/ld/configure.h ObjectDump dyldinfo ld machocheck rebase unwinddump
|
|
|
|
src/ld/Snapshot.o : src/ld/compile_stubs.h
|
|
src/ld/compile_stubs.h : compile_stubs
|
|
echo "static const char *compile_stubs = " > $@
|
|
cat $^ | sed s/\"/\\\\\"/g | sed s/^/\"/ | sed s/$$/\\\\n\"/ >> $@
|
|
echo ";" >> $@
|
|
|
|
src/ld/configure.h : src/create_configure
|
|
DERIVED_SOURCES_DIR=src/ld DERIVED_FILE_DIR=src/ld $^ > $@
|
|
|
|
ObjectDump : src/ld/debugline.o
|
|
ObjectDump : src/ld/parsers/macho_relocatable_file.o
|
|
ObjectDump : src/ld/parsers/lto_file.o
|
|
ObjectDump : src/other/ObjectDump.o
|
|
$(CXX) $(LLVM_LDFLAGS) $(LDFLAGS) $^ -o $@
|
|
|
|
dyldinfo : src/other/dyldinfo.o
|
|
$(CXX) $(LDFLAGS) -Wl,-exported_symbol,__mh_execute_header $^ -o $@
|
|
|
|
ld : src/ld/debugline.o
|
|
ld : src/ld/ld.o
|
|
ld : src/ld/InputFiles.o
|
|
ld : src/ld/Options.o
|
|
ld : src/ld/OutputFile.o
|
|
ld : src/ld/Resolver.o
|
|
ld : src/ld/Snapshot.o
|
|
ld : src/ld/SymbolTable.o
|
|
ld : src/ld/parsers/archive_file.o
|
|
ld : src/ld/parsers/lto_file.o
|
|
ld : src/ld/parsers/macho_dylib_file.o
|
|
ld : src/ld/parsers/macho_relocatable_file.o
|
|
ld : src/ld/parsers/opaque_section_file.o
|
|
ld : src/ld/parsers/textstub_dylib_file.o
|
|
ld : src/ld/passes/bitcode_bundle.o
|
|
ld : src/ld/passes/branch_island.o
|
|
ld : src/ld/passes/branch_shim.o
|
|
ld : src/ld/passes/code_dedup.o
|
|
ld : src/ld/passes/compact_unwind.o
|
|
ld : src/ld/passes/dtrace_dof.o
|
|
ld : src/ld/passes/dylibs.o
|
|
ld : src/ld/passes/got.o
|
|
ld : src/ld/passes/huge.o
|
|
ld : src/ld/passes/objc.o
|
|
ld : src/ld/passes/order.o
|
|
ld : src/ld/passes/tlvp.o
|
|
ld : src/ld/passes/stubs/stubs.o
|
|
$(CXX) $(LLVM_LDFLAGS) $(LDFLAGS) $(OTHER_LDFLAGS_LD64) -Wl,-exported_symbol,__mh_execute_header $^ -lxar -o $@
|
|
|
|
machocheck : src/other/machochecker.o
|
|
$(CXX) $(LDFLAGS) $^ -o $@
|
|
|
|
rebase : src/other/rebase.o
|
|
$(CXX) $(LDFLAGS) -Wl,-exported_symbol,__mh_execute_header $^ -o $@
|
|
|
|
unwinddump : src/other/unwinddump.o
|
|
$(CXX) $(LDFLAGS) -Wl,-exported_symbol,__mh_execute_header $^ -o $@
|
|
|
|
src/other/PruneTrie.o : src/ld/configure.h
|
|
libprunetrie.a : src/other/PruneTrie.o
|
|
$(AR) cru $@ $^
|
|
$(RANLIB) $@
|
|
|
|
install : all
|
|
install -d -m 755 $(DESTDIR)$(PREFIX)/bin
|
|
install -d -m 755 $(DESTDIR)$(PREFIX)/lib
|
|
install -d -m 755 $(DESTDIR)$(PREFIX)/include/mach-o
|
|
install -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
|
|
install -m 755 ObjectDump $(DESTDIR)$(PREFIX)/bin
|
|
install -m 755 dyldinfo $(DESTDIR)$(PREFIX)/bin
|
|
install -m 755 ld $(DESTDIR)$(PREFIX)/bin
|
|
install -m 755 machocheck $(DESTDIR)$(PREFIX)/bin
|
|
install -m 755 rebase $(DESTDIR)$(PREFIX)/bin
|
|
install -m 755 unwinddump $(DESTDIR)$(PREFIX)/bin
|
|
|
|
#install -m 644 src/other/prune_trie.h $(DESTDIR)$(PREFIX)/include/mach-o
|
|
#install -m 644 libprunetrie.a $(DESTDIR)$(PREFIX)/lib
|
|
|
|
install -m 644 doc/man/man1/dyldinfo.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
install -m 644 doc/man/man1/ld.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
install -m 644 doc/man/man1/ld64.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
install -m 644 doc/man/man1/rebase.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
install -m 644 doc/man/man1/unwinddump.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
|