forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
brutefir-1.0k-ld.patch
132 lines (112 loc) · 4.55 KB
/
brutefir-1.0k-ld.patch
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) \