summaryrefslogtreecommitdiff
blob: 6860b5f360b5b1d4a7f04cab0c58f928e6a7e16a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
The problem is that it passes -fPIC to the linker, and it does not use gcc as
frontend, it uses ld directly. The problem is that -f on ld that produces a
DT_AUXILIARY rather than causing any PIC code production. Fix also DESTDIR
handling and add LIBDIR variable for multilib systems.

See, http://bugs.gentoo.org/252338

diff -ur brutefir-1.0k.orig/Makefile brutefir-1.0k/Makefile
--- brutefir-1.0k.orig/Makefile	2009-03-31 22:36:20.000000000 +0300
+++ brutefir-1.0k/Makefile	2009-06-21 05:44:03.000000000 +0300
@@ -1,11 +1,13 @@
 ###################################
 # Where to install
-INSTALL_PREFIX	= $(DESTDIR)/usr/local
+# PREFIX	= /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
+# LIBPATHS	= -L/usr/local/lib
+# INCLUDE	= -I/usr/local/include
 ifdef FFTW_PATH
 LIBPATHS	+= -L$(FFTW_PATH)/lib
 INCLUDE		+= -I$(FFTW_PATH)/include
@@ -17,19 +19,15 @@
 
 ###################################
 # Binaries
-FLEX	= flex
-LD	= ld
-CC	= gcc
-AS	= as
+FLEX	?= flex
+CC	?= gcc
+AS	?= as
 
 ###################################
 # Flags
-CC_WARN		= -Wall -Wlong-long -Wpointer-arith -Wshadow \
+CFLAGS		+= -Wall -Wlong-long -Wpointer-arith -Wshadow \
 -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes \
 -Wmissing-prototypes -Wmissing-declarations -Wnested-externs
-CC_FLAGS	= $(DEFINE) -O2
-CC_FPIC		= -fPIC
-LD_SHARED	= -shared
 
 ###################################
 # Objects and libs for targets
@@ -74,7 +72,7 @@
 BRUTEFIR_OBJS	+= $(BRUTEFIR_IA32_OBJS)
 endif
 BRUTEFIR_LIBS	+= -ldl
-LDMULTIPLEDEFS	= -Xlinker --allow-multiple-definition
+LINKFLAGS	= -fPIC -shared -Xlinker --allow-multiple-definition
 # assume that we have alsa, osss and jack
 LIB_TARGETS	+= alsa.bfio
 LIB_TARGETS	+= oss.bfio
@@ -83,11 +81,11 @@
 
 # Solaris
 ifeq ($(UNAME),SunOS)
-CC_WARN		= -Wall -Wlong-long -Wpointer-arith -Wshadow \
+CFLAGS		+= -Wall -Wlong-long -Wpointer-arith -Wshadow \
 -Wcast-qual -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations \
 -Wnested-externs
 ifeq ($(UNAME_P),sparc)
-CC_FLAGS	+= -Wa,-xarch=v8plus
+CFLAGS		+= -Wa,-xarch=v8plus
 endif
 BRUTEFIR_LIBS	+= -lrt -ldl
 endif
@@ -112,43 +110,44 @@
 	$(AS) -o $@			$<
 
 %.fpic.o: %.c
-	$(CC) -o $@			-c $(INCLUDE) $(CC_FPIC) $(CC_WARN) $(CC_FLAGS) $<
+	$(CC) -fPIC -shared -o $@	-c $(INCLUDE) $(CFLAGS) $<
 
 %.o: %.c
-	$(CC) -o $@			-c $(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 $(INCLUDE) $(CC_FLAGS) $<
+	$(CC) -o $@			-c $(INCLUDE) $(CFLAGS) $<
 
 %.c: %.lex
 	$(FLEX) -o$@ $<
 
 brutefir: $(BRUTEFIR_OBJS)
-	$(CC) $(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) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_ALSA_OBJS) $(BFIO_ALSA_LIBS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_ALSA_OBJS) $(BFIO_ALSA_LIBS) -lc
 
 oss.bfio: $(BFIO_OSS_OBJS)
-	$(LD) $(LD_SHARED) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_OSS_OBJS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_OSS_OBJS) -lc
 
 jack.bfio: $(BFIO_JACK_OBJS)
-	$(LD) $(LD_SHARED) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_JACK_OBJS) $(BFIO_JACK_LIBS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_JACK_OBJS) $(BFIO_JACK_LIBS) -lc
 
 file.bfio: $(BFIO_FILE_OBJS)
-	$(LD) $(LD_SHARED) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFIO_FILE_OBJS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFIO_FILE_OBJS) -lc
 
 cli.bflogic: $(BFLOGIC_CLI_OBJS)
-	$(LD) $(LD_SHARED) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFLOGIC_CLI_OBJS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFLOGIC_CLI_OBJS) -lc
 
 eq.bflogic: $(BFLOGIC_EQ_OBJS)
-	$(LD) $(LD_SHARED) $(CC_FPIC) $(LIBPATHS) -o $@ $(BFLOGIC_EQ_OBJS) -lc
+	$(CC) $(LINKFLAGS) $(LDFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $(BFLOGIC_EQ_OBJS) -lc
 
 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)  \