diff -r 000000000000 -r 6474c204b198 tools/reorder/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/reorder/Makefile Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,74 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Redefine this to something that makes sense for you. +MOZ_SRC=/usr/src/seamonkey-clean/mozilla +MKLINKSCRIPT=$(MOZ_SRC)/config/mklinkscript.pl + +ifdef DEBUG +CFLAGS=-g -Wall +CXXFLAGS=-g -Wall +else +CFLAGS=-O2 +CXXFLAGS=-O2 +endif + +ifdef PROFILE +CFLAGS += -pg -g +CXXFLAGS += -pg -g +endif + +TARGETS=\ + libmcount.so \ + libcygprof.so \ + addrs2text \ + garope \ + grope \ + histogram \ + mapaddrs \ + rseed \ + test \ + $(NULL) + +all: $(TARGETS) + +libmcount.so: mcount.c + $(CC) -shared $(CFLAGS) -o $@ $< + +libcygprof.so: cygprof.c + $(CC) -shared $(CFLAGS) -o $@ $< + +addrs2text: addrs2text.o + +garope: garope.cpp elf_symbol_table.o elf_utils.o +grope: grope.cpp elf_symbol_table.o elf_utils.o +histogram: histogram.cpp elf_symbol_table.o elf_utils.o +mapaddrs: mapaddrs.cpp elf_symbol_table.o elf_utils.o +rseed: rseed.c +elf_symbol_table.o: elf_symbol_table.cpp elf_symbol_table.h elf_utils.h interval_map.h +elf_utils.o: elf_utils.cpp elf_utils.h + +# Build these with -pg so we get profiling info +TEST_CFLAGS=-ffunction-sections -finstrument-functions -O2 + +test: test.o mult.o test.ldscript + $(CXX) -Wl,-T,test.ldscript -O2 -o $@ $^ + +test.ldscript: test.order $(MKLINKSCRIPT) + perl $(MKLINKSCRIPT) -o $@ $< + +# This should really be generated by one of the fine tools, above. If +# it hasn't been, create an empty ordering file. +test.order: + touch $@ + +mult.o: mult.c + $(CC) $(TEST_CFLAGS) -c -o $@ $< + +test.o: test.cpp + $(CXX) $(TEST_CFLAGS) -c -o $@ $< + +clean: + rm -f $(TARGETS) test.ldscript *.o *~ core +