Don't hardcode optimizations, install to the correct locations. Disable warnings; clang is very chatty. Put in obstack code. Convert to bsd make Index: Makefile --- Makefile.orig +++ Makefile @@ -1,51 +1,21 @@ -ifneq ($(srcdir),) -VPATH = $(srcdir) -else -srcdir=$(shell pwd) -endif - -CFLAGS = -O2 -g -DWZ_VERSION := $(shell cat $(srcdir)/VERSION) -CFLAGS_VERSION = -DDWZ_VERSION='"$(DWZ_VERSION)"' -CFLAGS_COPYRIGHT = $(shell cat $(srcdir)/COPYRIGHT_YEARS) -CFLAGS_COMMON = -Wall -W -D_FILE_OFFSET_BITS=64 -XXH_PROG = "\#define XXH_INLINE_ALL 1\n\#include \n" -XXH_INLINE_ALL_WORKS = $(shell printf $(XXH_PROG) \ - | $(CC) -xc -c - -o /dev/null 2>/dev/null \ - && echo -n 1) -ifeq "$(XXH_INLINE_ALL_WORKS)" "1" - CFLAGS_COMMON += -DXXH_INLINE_ALL=1 -endif - -override CFLAGS += $(CFLAGS_COMMON) $(CFLAGS_VERSION) $(CFLAGS_COPYRIGHT) - +srcdir = . +CFLAGS ?= -O2 -g +DWZ_VERSION != cat $(srcdir)/VERSION +CFLAGS += -DDWZ_VERSION='"$(DWZ_VERSION)"' +CFLAGS !+= cat $(srcdir)/COPYRIGHT_YEARS +CFLAGS += -D_FILE_OFFSET_BITS=64 +CFLAGS += -DXXH_INLINE_ALL=1 prefix = /usr exec_prefix = $(prefix) bindir = $(exec_prefix)/bin datarootdir = $(prefix)/share mandir = $(datarootdir)/man -OBJECTS = args.o dwz.o hashtab.o pool.o sha1.o dwarfnames.o +OBJECTS = args.o dwz.o hashtab.o pool.o sha1.o dwarfnames.o obstack.o LIBS=-lelf -ifneq "$(XXH_INLINE_ALL_WORKS)" "1" -LIBS += -lxxhash -endif dwz: $(OBJECTS) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -args.o: native.o -args.o: CFLAGS_FOR_SOURCE = \ - -DNATIVE_ENDIAN_VAL=$(NATIVE_ENDIAN_VAL) \ - -DNATIVE_POINTER_SIZE=$(NATIVE_POINTER_SIZE) -NATIVE_ENDIAN=$(shell readelf -h native.o \ - | grep Data \ - | sed 's/.*, //;s/ endian//') -NATIVE_ENDIAN_LITTLE=$(findstring $(NATIVE_ENDIAN),$(findstring little,$(NATIVE_ENDIAN))) -NATIVE_ENDIAN_BIG=$(findstring $(NATIVE_ENDIAN),$(findstring big,$(NATIVE_ENDIAN))) -NATIVE_ENDIAN_VAL=$(if $(NATIVE_ENDIAN_LITTLE),ELFDATA2LSB,$(if $(NATIVE_ENDIAN_BIG),ELFDATA2MSB,ELFDATANONE)) -NATIVE_POINTER_SIZE=$(shell readelf -wi native.o \ - | grep "Pointer Size:" \ - | sed 's/.*: *//') + $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) %.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< $(CFLAGS_FOR_SOURCE) + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< install: dwz install -D dwz $(DESTDIR)$(bindir)/dwz install -D -m 644 $(srcdir)/dwz.1 $(DESTDIR)$(mandir)/man1/dwz.1 @@ -53,10 +23,6 @@ clean: rm -f $(OBJECTS) *~ core* dwz $(TEST_EXECS) $(DWZ_TEST_OBJECTS) \ dwz.log dwz.sum native.c native.o rm -Rf testsuite-bin tmp.* -native.c: - echo "int main (void) { return 0; }" > $@ -native.o: native.c - $(CC) -o $@ $< -c -g PWD:=$(shell pwd -P)