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 <[email protected]> --- 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 -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
