diff --git a/Makefile b/Makefile index a10cb89..752a112 100644 --- a/Makefile +++ b/Makefile @@ -5,12 +5,11 @@ LDFLAGS += ################################### # Where to install -INSTALL_PREFIX = $(DESTDIR)/usr/local +PREFIX = /usr +LIBDIR = $(PREFIX)/lib ################################### # Where to find libraries, and their header files. -LIBPATHS = -L/usr/local/lib -INCLUDE = -I/usr/local/include ifdef FFTW_PATH LIBPATHS += -L$(FFTW_PATH)/lib INCLUDE += -I$(FFTW_PATH)/include @@ -22,19 +21,15 @@ FFTW_LIB = -lfftw3 -lfftw3f ################################### # Binaries -FLEX = flex -LD = gcc -CC = gcc -CHMOD = chmod +FLEX ?= flex +CC ?= gcc +CHMOD ?= chmod ################################### # Flags -CC_WARN = -Wall -Wpointer-arith -Wshadow \ +CFLAGS += -Wall -Wpointer-arith -Wshadow \ -Wcast-align -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -CC_FLAGS = $(DEFINE) -O2 $(CFLAGS) $(CPPFLAGS) -CC_FPIC = -fPIC -LD_SHARED = -shared CHMOD_REMOVEX = -x ################################### @@ -85,7 +80,7 @@ ifneq (,$(findstring sparc,$(UNAME_M))) CC_FLAGS += -Wa,-xarch=v8plus endif BRUTEFIR_LIBS += -ldl -LDMULTIPLEDEFS = -Xlinker --allow-multiple-definition +LINKFLAGS = -fPIC -shared -Xlinker --allow-multiple-definition # assume that we have oss and jack, alsa being linux-only ifeq ($(UNAME),Linux) LIB_TARGETS += alsa.bfio @@ -111,49 +106,50 @@ TARGETS = $(BIN_TARGETS) $(LIB_TARGETS) all: $(TARGETS) %.fpic.o: %.c - $(CC) -o $@ -c $(LDFLAGS) $(INCLUDE) $(CC_FPIC) $(CC_WARN) $(CC_FLAGS) $< + $(CC) -fPIC -shared -o $@ -c $(INCLUDE) $(CFLAGS) $< %.o: %.c - $(CC) -o $@ -c $(LDFLAGS) $(INCLUDE) $(CC_WARN) $(CC_FLAGS) $< + $(CC) -o $@ -c $(INCLUDE) $(CFLAGS) $< # special rule to avoid to get warnings from code generated by flex bfconf_lexical.o: bfconf_lexical.c - $(CC) -o $@ -c $(LDFLAGS) $(INCLUDE) $(CC_FLAGS) $< + $(CC) -o $@ -c $(INCLUDE) $(CFLAGS) $< %.c: %.lex $(FLEX) -o$@ $< brutefir: $(BRUTEFIR_OBJS) - $(CC) $(LDFLAGS) $(LIBPATHS) $(LDMULTIPLEDEFS) -o $@ $(BRUTEFIR_OBJS) $(BRUTEFIR_LIBS) + $(CC) $(LDFLAGS) $(LDMULTIPLEDEFS) $(CFLAGS) $(LIBPATHS) -o $@ $(BRUTEFIR_OBJS) $(BRUTEFIR_LIBS) alsa.bfio: $(BFIO_ALSA_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_ALSA_OBJS) $(BFIO_ALSA_LIBS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_ALSA_OBJS) $(BFIO_ALSA_LIBS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ oss.bfio: $(BFIO_OSS_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_OSS_OBJS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_OSS_OBJS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ jack.bfio: $(BFIO_JACK_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_JACK_OBJS) $(BFIO_JACK_LIBS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_JACK_OBJS) $(BFIO_JACK_LIBS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ file.bfio: $(BFIO_FILE_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_FILE_OBJS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_FILE_OBJS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ cli.bflogic: $(BFLOGIC_CLI_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFLOGIC_CLI_OBJS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFLOGIC_CLI_OBJS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ eq.bflogic: $(BFLOGIC_EQ_OBJS) - $(LD) $(LD_SHARED) $(LDFLAGS) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFLOGIC_EQ_OBJS) -lc + $(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFLOGIC_EQ_OBJS) -lc $(CHMOD) $(CHMOD_REMOVEX) $@ install: $(BIN_TARGETS) $(LIB_TARGETS) - install -d $(INSTALL_PREFIX)/bin $(INSTALL_PREFIX)/lib/brutefir - install $(BIN_TARGETS) $(INSTALL_PREFIX)/bin - install $(LIB_TARGETS) $(INSTALL_PREFIX)/lib/brutefir + install -d $(DESTDIR)$(PREFIX)/bin + install $(BIN_TARGETS) $(DESTDIR)$(PREFIX)/bin + install -d $(DESTDIR)$(LIBDIR)/brutefir + install $(LIB_TARGETS) $(DESTDIR)$(LIBDIR)/brutefir clean: rm -f *.core core bfconf_lexical.c $(BRUTEFIR_OBJS) $(BFIO_FILE_OBJS) \