# # Copyright IBM Corporation. 2007 # # Authors: Balbir Singh # This program is free software; you can redistribute it and/or modify it # under the terms of version 2.1 of the GNU Lesser General Public License # as published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # YACC_DEBUG=-t INC=-I. LIBS= -lcgroup -lpthread LDFLAGS=@LDFLAGS@ -L . YACC=@YACC@ LEX=@LEX@ bindir=@bindir@ sbindir=@sbindir@ libdir=@libdir@ includedir=@includedir@ prefix=@prefix@ exec_prefix=@exec_prefix@ datarootdir=@datarootdir@ mandir=@mandir@ INSTALL=install INSTALL_DATA=install -m 644 PACKAGE_VERSION=@PACKAGE_VERSION@ CFLAGS=@CFLAGS@ $(INC) VERSION=1 TARGETS = libcgroup.so cgconfigparser cgexec cgclassify cgrulesengd pam_cgroup.so all: $(TARGETS) cgconfigparser: libcgroup.so cgconfig.c libcgroup.h $(CC) $(CFLAGS) $(INC) -Wall -o $@ cgconfig.c $(LDFLAGS) $(LIBS) cgexec: libcgroup.so cgexec.c libcgroup.h tools-common.c tools-common.h $(CC) $(CFLAGS) -Wall -o $@ cgexec.c tools-common.c $(LDFLAGS) $(LIBS) cgclassify: libcgroup.so cgclassify.c tools-common.c tools-common.h $(CC) $(CFLAGS) -Wall -o $@ cgclassify.c tools-common.c $(LDFLAGS) $(LIBS) cgrulesengd: libcgroup.so libcgroup.h cgrulesengd.c cgrulesengd.h $(CC) -std=gnu99 $(CFLAGS) -Wall -o $@ cgrulesengd.c \ $(LDFLAGS) $(LIBS) y.tab.c: parse.y lex.yy.c $(YACC) -v -d parse.y lex.yy.c: lex.l $(LEX) lex.l libcgroup.so: api.c libcgroup.h wrapper.c config.c lex.yy.c y.tab.c $(CC) $(CFLAGS) -shared -fPIC -Wl,--soname,$@.$(VERSION) -o $@ \ -Wl,--version-script,libcgroup.map,--allow-shlib-undefined \ api.c wrapper.c lex.yy.c y.tab.c config.c ln -sf $@ $@.$(VERSION) test: $(MAKE) -C tests pam_cgroup.so: pam_cgroup.c libcgroup.so $(CC) $(CFLAGS) -shared -fPIC -Wall -o $@ pam_cgroup.c $(LDFLAGS) \ $(LIBS) -lpam install: $(TARGETS) $(INSTALL_DATA) -D libcgroup.h $(DESTDIR)$(includedir)/libcgroup.h $(INSTALL) -D libcgroup.so $(DESTDIR)$(libdir)/libcgroup-$(PACKAGE_VERSION).so ln -sf libcgroup-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libcgroup.so.$(VERSION) ln -sf libcgroup.so.$(VERSION) $(DESTDIR)$(libdir)/libcgroup.so $(INSTALL) -D cgconfigparser $(DESTDIR)$(sbindir)/cgconfigparser $(INSTALL) -D cgexec $(DESTDIR)$(bindir)/cgexec $(INSTALL) -D cgclassify $(DESTDIR)$(bindir)/cgclassify $(INSTALL) -D cgrulesengd $(DESTDIR)$(bindir)/cgrulesengd $(INSTALL) -D doc/man/cgclassify.1 $(DESTDIR)$(mandir)/man1/cgclassify.1 $(INSTALL) -D doc/man/cgexec.1 $(DESTDIR)$(mandir)/man1/cgexec.1 $(INSTALL) -D doc/man/cgred.conf.5 $(DESTDIR)$(mandir)/man5/cgred.conf.5 $(INSTALL) -D doc/man/cgconfig.conf.5 $(DESTDIR)$(mandir)/man5/cgconfig.conf.5 $(INSTALL) -D doc/man/cgrules.conf.5 $(DESTDIR)$(mandir)/man5/cgrules.conf.5 $(INSTALL) -D doc/man/cgconfigparser.8 $(DESTDIR)$(mandir)/man8/cgconfigparser.8 $(INSTALL) -D doc/man/cgrulesengd.8 $(DESTDIR)$(mandir)/man8/cgrulesengd.8 $(INSTALL) -D pam_cgroup.so $(DESTDIR)$(libdir)/security/pam_cgroup.so uninstall: libcgroup.so rm -f $(DESTDIR)$(includedir)/libcgroup.h rm -f $(DESTDIR)$(libdir)/libcgroup.so rm -f $(DESTDIR)$(libdir)/libcgroup.so.$(VERSION) rm -f $(DESTDIR)$(libdir)/libcgroup-$(PACKAGE_VERSION).so rm -f $(DESTDIR)$(sbindir)/cgconfigparser rm -f $(DESTDIR)$(bindir)/cgexec rm -f $(DESTDIR)$(bindir)/cgclassify rm -f $(DESTDIR)$(bindir)/cgrulesengd rm -f $(DESTDIR)$(mandir)/man5/cgconfig.conf.5 rm -f $(DESTDIR)$(mandir)/man8/cgrulesengd.8 rm -f $(DESTDIR)$(mandir)/man5/cgrules.conf.5 rm -f $(DESTDIR)$(mandir)/man1/cgexec.1 rm -f $(DESTDIR)$(mandir)/man1/cgclassify.1 rm -f $(DESTDIR)$(mandir)/man8/cgconfigparser.8 rm -f $(DESTDIR)$(libdir)/security/pam_cgroup.so clean: \rm -f y.tab.c y.tab.h lex.yy.c y.output libcgroup.so cgclassify \ libcgroup.so.$(VERSION) $(TARGETS)