[apparmor] [PATCH 7/9] Convert Makefile to use static pattern rules
John Johansen
john.johansen at canonical.com
Tue Sep 15 03:11:19 UTC 2015
instead of individual rules for each .c or .cc file use static pattern
rules and variables to get automatic expansion.
For the current patch keep the dependencies for various header
combinations separate as they currently are. However this patch fixes
several missing dependencies, including the missing dependencies on
parser_version.h, af_names.h and cap_names.h which necessitating
splitting and adding new dependencies.
Signed-off-by: John Johansen <john.johansen at canonical.com>
---
parser/Makefile | 89 ++++++++++++++++++++-------------------------------------
1 file changed, 31 insertions(+), 58 deletions(-)
diff --git a/parser/Makefile b/parser/Makefile
index 9e9e132..d3fc23d 100644
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -86,18 +86,32 @@ EXTRA_CXXFLAGS+=-DPACKAGE=\"${NAME}\" -DLOCALEDIR=\"${LOCALEDIR}\"
# Compile-time configuration of the location of the config file
EXTRA_CXXFLAGS+=-DSUBDOMAIN_CONFDIR=\"${CONFDIR}\"
-SRCS = parser_common.c parser_include.c parser_interface.c parser_lex.c \
- parser_main.c parser_misc.c parser_merge.c parser_symtab.c \
- parser_yacc.c parser_regex.c parser_variable.c parser_policy.c \
- parser_alias.c common_optarg.c lib.c network.c \
- mount.cc dbus.cc profile.cc rule.cc signal.cc ptrace.cc \
- af_rule.cc af_unix.cc policy_cache.c
+C_OBJS_HDRS = parser_include.o parser_merge.o parser_symtab.o \
+ parser_variable.o parser_alias.o parser_common.o policy_cache.o \
+ lib.o
+C_OBJS_YACC = parser_lex.o parser_policy.o
+C_OBJS_AA = parser_yacc.o
+C_OBJS_RE = parser_interface.o common_optarg.o
+C_OBJS_AA_RE = parser_regex.o
+C_OBJS_YACC_AF = network.o
+C_OBJS_AA_CAP = parser_misc.o
+C_OBJS_AA_RE_VER = parser_main.o
+
+CXX_OBJS_HDRS = mount.o profile.o rule.o
+CXX_OBJS_AA = dbus.o signal.o ptrace.o af_rule.o af_unix.o
+
+C_OBJS = $(C_OBJS_HDRS) $(C_OBJS_YACC) $(C_OBJS_AA) $(C_OBJS_RE) \
+ $(C_OBJS_AA_RE) $(C_OBJS_YACC_AF) $(C_OBJS_AA_CAP) $(C_OBJS_AA_RE_VER)
+CXX_OBJS = $(CXX_OBJS_HDRS) $(CXX_OBJS_AA)
+
+SRCS = $(C_OBJS:.o=.c) $(CXX_OBJS:.o=.cc)
+OBJECTS = $(C_OBJS) $(CXX_OBJS)
+
HDRS = parser.h parser_include.h immunix.h mount.h dbus.h lib.h profile.h \
rule.h common_optarg.h signal.h ptrace.h network.h af_rule.h af_unix.h \
policy_cache.h
TOOLS = apparmor_parser
-OBJECTS = $(patsubst %.cc, %.o, $(SRCS:.c=.o))
AAREDIR= libapparmor_re
AAREOBJECT = ${AAREDIR}/libapparmor_re.a
@@ -210,80 +224,39 @@ parser_yacc.c parser_yacc.h: parser_yacc.y parser.h profile.h
parser_lex.c: parser_lex.l parser_yacc.h $(HDRS)
$(LEX) ${LEXFLAGS} -o$@ $<
-parser_lex.o: parser_lex.c parser_yacc.h $(HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-parser_misc.o: parser_misc.c $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-parser_yacc.o: parser_yacc.c parser_yacc.h $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-parser_main.o: parser_main.c $(HDRS) $(AARE_HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-parser_interface.o: parser_interface.c $(HDRS) $(AARE_HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_include.o: parser_include.c $(HDRS)
+$(C_OBJS_HDRS): %.o: %.c $(HDRS)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_merge.o: parser_merge.c $(HDRS)
+$(C_OBJS_YACC): %.o: %.c parser_yacc.h $(HDRS)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_regex.o: parser_regex.c $(HDRS) $(AARE_HDRS) $(APPARMOR_H)
+$(C_OBJS_AA): %.o: %.c $(HDRS) $(APPARMOR_H)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_symtab.o: parser_symtab.c $(HDRS)
+$(C_OBJS_RE): %.o: %.c $(HDRS) $(AARE_HDRS)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_variable.o: parser_variable.c $(HDRS)
+$(C_OBJS_AA_RE): %.o: %.c $(HDRS) $(AARE_HDRS) $(APPARMOR_H)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_policy.o: parser_policy.c parser_yacc.h $(HDRS)
+$(C_OBJS_YACC_AF): %.o: %.c parser_yacc.h af_names.h $(HDRS)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_alias.o: parser_alias.c $(HDRS)
+$(C_OBJS_AA_CAP): %.o: %.c $(HDRS) cap_names.h $(APPARMOR_H)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-parser_common.o: parser_common.c $(HDRS)
+$(C_OBJS_AA_RE_VER): %.o: %.c $(HDRS) $(AARE_HDRS) $(APPARMOR_H) parser_version.h
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-mount.o: mount.cc $(HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-common_optarg.o: common_optarg.c $(HDRS) $(AARE_HDRS)
+$(CXX_OBJS_HDRS): %.o: %.cc $(HDRS)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-policy_cache.o: policy_cache.c $(HDRS)
+$(CXX_OBJS_AA): %.o: %.cc $(HDRS) $(APPARMOR_H)
$(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-lib.o: lib.c $(HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-dbus.o: dbus.cc $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-signal.o: signal.cc $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-ptrace.o: ptrace.cc $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-network.o: network.c $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-af_rule.o: af_rule.cc $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-af_unix.o: af_unix.cc $(HDRS) $(APPARMOR_H)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-profile.o: profile.cc $(HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
-
-rule.o: rule.cc $(HDRS)
- $(CXX) $(EXTRA_CXXFLAGS) -c -o $@ $<
parser_version.h: Makefile
@echo \#define PARSER_VERSION \"$(VERSION)\" > .ver
--
2.1.4
More information about the AppArmor
mailing list