diff options
Diffstat (limited to 'src/Makefile')
-rw-r--r-- | src/Makefile | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..7e7b9dc --- /dev/null +++ b/src/Makefile @@ -0,0 +1,122 @@ +## +## rhctl +## +## Copyright (C) 2009-2014 Christian Pointner <equinox@helsinki.at> +## +## 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 <http://www.gnu.org/licenses/>. +## + +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)
\ No newline at end of file |