## ## rhctl ## ## Copyright (C) 2009-2014 Christian Pointner ## ## This file is part of rhctl. ## ## rhctl is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## any later version. ## ## rhctl is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with rhctl. If not, see . ## ifneq ($(MAKECMDGOALS),distclean) include include.mk endif EXE_SWITCHCTL := switchctl EXE_SERIALCLIENT := serialclient EXE_STDIOCLIENT := stdioclient EXE_HEARTBEATCLIENT := heartbeatclient EXE_LUACLIENT := luaclient COMMONOBJ := log.o \ sig_handler.o \ string_list.o \ key_value_storage.o \ utils.o SWITCHCTLOBJ := command_queue.o \ client_list.o \ opt-switchctl.o \ switchctl.o SERIALCLIENTOBJ := opt-serialclient.o \ serialclient.o STDIOCLIENTOBJ := opt-stdioclient.o \ stdioclient.o HEARTBEATCLIENTOBJ := opt-heartbeatclient.o \ heartbeatclient.o LUACLIENTOBJ := opt-luaclient.o \ l_log.o \ l_sig_handler.o \ l_cmd.o \ luaclient.o SRC := $(COMMONOBJ:%.o=%.c) $(SWITCHCTLOBJ:%.o=%.c) $(SERIALCLIENTOBJ:%.o=%.c) $(STDIOCLIENTOBJ:%.o=%.c) $(HEARTBEATCLIENTOBJ:%.o=%.c) $(LUACLIENTOBJ:%.o=%.c) options.c .PHONY: clean distclean all: $(EXE_SWITCHCTL) $(EXE_SERIALCLIENT) $(EXE_STDIOCLIENT) $(EXE_HEARTBEATCLIENT) $(EXE_LUACLIENT) %.d: %.c @set -e; rm -f $@; \ $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$; echo '(re)building $@' ifneq ($(MAKECMDGOALS),distclean) -include $(SRC:%.c=%.d) endif $(EXE_SWITCHCTL): $(COMMONOBJ) $(SWITCHCTLOBJ) $(CC) $(COMMONOBJ) $(SWITCHCTLOBJ) -o $@ $(LDFLAGS) $(EXE_SERIALCLIENT): $(COMMONOBJ) $(SERIALCLIENTOBJ) $(CC) $(COMMONOBJ) $(SERIALCLIENTOBJ) -o $@ $(LDFLAGS) $(EXE_STDIOCLIENT): $(COMMONOBJ) $(STDIOCLIENTOBJ) $(CC) $(COMMONOBJ) $(STDIOCLIENTOBJ) -o $@ $(LDFLAGS) $(EXE_HEARTBEATCLIENT): $(COMMONOBJ) $(HEARTBEATCLIENTOBJ) $(CC) $(COMMONOBJ) $(HEARTBEATCLIENTOBJ) -o $@ $(LDFLAGS) $(EXE_LUACLIENT): $(COMMONOBJ) $(LUACLIENTOBJ) $(CC) $(COMMONOBJ) $(LUACLIENTOBJ) -o $@ $(LDFLAGS) $(LUA_LDFLAGS) opt-switchctl.o: options.c $(CC) $(CFLAGS) -DOPT_SWITCHCTL -o $@ -c $< opt-serialclient.o: options.c $(CC) $(CFLAGS) -DOPT_SERIALCLIENT -o $@ -c $< opt-stdioclient.o: options.c $(CC) $(CFLAGS) -DOPT_STDIOCLIENT -o $@ -c $< opt-heartbeatclient.o: options.c $(CC) $(CFLAGS) -DOPT_HEARTBEATCLIENT -o $@ -c $< opt-luaclient.o: options.c $(CC) $(CFLAGS) -DOPT_LUACLIENT -o $@ -c $< %.o: %.c $(CC) $(CFLAGS) -c $< distclean: clean find . -name *.o -exec rm -f {} \; find . -name "*.\~*" -exec rm -rf {} \; rm -f include.mk clean: rm -f *.o rm -f *.d rm -f *.d.* rm -f $(EXE_SWITCHCTL) rm -f $(EXE_SERIALCLIENT) rm -f $(EXE_STDIOCLIENT) rm -f $(EXE_HEARTBEATCLIENT) rm -f $(EXE_LUACLIENT)