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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
From 8dfeef49b5acde14fc8749e89f7af53bb64f4054 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sat, 31 May 2008 22:21:31 -0400
Subject: [PATCH] cleanup build system
This refactors the homebrewed build system to work much better "out of the
box" for people. It moves tools/flags into appropriate env-overridable
variables as well as simplifies the subdirectory handling and flag passing.
A few bug fixes are also mixed in such as proper link order, parallel build
failure due to local header generation, and splitting up of logic between
binaries compiled and run on the build system and binaries compiled to run
on the target system.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
Make.Rules | 28 ++++++++++++++--------------
libcap/Makefile | 10 ++++++----
pam_cap/Makefile | 6 +++---
progs/Makefile | 2 +-
4 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/Make.Rules b/Make.Rules
index 6bf1562..660ae7d 100644
--- a/Make.Rules
+++ b/Make.Rules
@@ -42,27 +42,27 @@ MINOR=15
# Compilation specifics
-KERNEL_HEADERS := $(topdir)/libcap/include
-IPATH += -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
-
-CC := gcc
-CFLAGS := -O2
-BUILD_CC := $(CC)
-BUILD_CFLAGS := $(CFLAGS) $(IPATH)
-AR := ar
-RANLIB := ranlib
-DEBUG = -g #-DDEBUG
-WARNINGS=-fPIC -Wall -Wwrite-strings \
+CC ?= gcc
+BUILD_CC ?= $(CC)
+AR ?= ar
+RANLIB ?= ranlib
+CFLAGS ?= -O2
+BUILD_CFLAGS ?= $(CFLAGS)
+WARNINGS=-Wall -Wwrite-strings \
-Wpointer-arith -Wcast-qual -Wcast-align \
-Wstrict-prototypes -Wmissing-prototypes \
-Wnested-externs -Winline -Wshadow
LD=$(CC) -Wl,-x -shared
-LDFLAGS := #-g
+LDFLAGS ?= #-g
-SYSTEM_HEADERS = /usr/include
+KERNEL_HEADERS = $(topdir)/libcap/include
+LIBCAP_CPPFLAGS = -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
+CPPFLAGS += $(LIBCAP_CPPFLAGS)
+BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
INCS=$(topdir)/libcap/include/sys/capability.h
LDFLAGS += -L$(topdir)/libcap
-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) $(IPATH)
+CPPFLAGS += -Dlinux
+CFLAGS += $(WARNINGS)
PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi)
INDENT := $(shell if [ -z "$(which ident 2>/dev/null)" ]; then echo "| indent -kr" ; fi)
DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi)
diff --git a/libcap/Makefile b/libcap/Makefile
index a47e672..0aa3e9a 100644
--- a/libcap/Makefile
+++ b/libcap/Makefile
@@ -24,7 +24,8 @@ OBJS=$(addsuffix .o, $(FILES))
MAJLIBNAME=$(LIBNAME).$(VERSION)
MINLIBNAME=$(MAJLIBNAME).$(MINOR)
GPERF_OUTPUT = _caps_output.gperf
-LDFLAGS += -lattr
+LDLIBS += -lattr
+CFLAGS += -fPIC
all: $(MINLIBNAME) $(STALIBNAME)
@@ -33,7 +35,7 @@ INCLUDE_GPERF_OUTPUT = -include $(GPERF_OUTPUT)
endif
_makenames: _makenames.c cap_names.sed
- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
+ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
cap_names.h: _makenames
./_makenames > cap_names.h
@@ -50,15 +52,15 @@ $(STALIBNAME): $(OBJS)
$(RANLIB) $@
$(MINLIBNAME): $(OBJS)
- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^
+ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^ $(LDLIBS)
ln -sf $(MINLIBNAME) $(MAJLIBNAME)
ln -sf $(MAJLIBNAME) $(LIBNAME)
%.o: %.c $(INCLS)
- $(CC) $(CFLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
- $(CC) $(CFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
install: all
mkdir -p -m 0755 $(INCDIR)/sys
diff --git a/pam_cap/Makefile b/pam_cap/Makefile
index eae88ed..bef59d2 100644
--- a/pam_cap/Makefile
+++ b/pam_cap/Makefile
@@ -14,13 +14,13 @@ install: all
install -m 0755 pam_cap.so $(LIBDIR)/security
pam_cap.so: pam_cap.o
- $(LD) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
+ $(LD) $(CFLAGS) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
pam_cap.o: pam_cap.c
- $(CC) $(CFLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
testcompile: test.c pam_cap.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
clean:
rm -f *.o *.so testcompile *~
diff --git a/progs/Makefile b/progs/Makefile
index a1542dc..612cf86 100644
--- a/progs/Makefile
+++ b/progs/Makefile
@@ -22,7 +22,7 @@ $(BUILD): %: %.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
%.o: %.c $(INCS)
- $(CC) $(CFLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
install: all
mkdir -p -m 0755 $(SBINDIR)
--
1.6.0.3
|