CC=g++ CFLAGS=-c -std=c++17 -O4 -MMD -MP -Wall -ggdb -I ../modern-cpp-kafka/include/ LDFLAGS=-ltcl8.6 -lpthread -lz -L/usr/lib64/mysql -lmysqlclient -lrdkafka -lssl -lcrypto # TODO Remove most of these references to ../something. That seems to cause # some issues. In particular, when a file can be called by different names, # e.g. ../shared/LogFile.C and ../../shared/LogFile.C, that seems to confuse # the dependency checks. SOURCES = \ ../shared/LogFile.C \ ../generate_alerts/misc_framework/DataNodes.C \ ../generate_alerts/data_framework/GenericTosData.C \ ../generate_alerts/data_framework/TosData.C \ ../generate_alerts/misc_framework/Timers.C \ ../generate_alerts/misc_framework/DebugMessage.C \ ../generate_alerts/ProxyData.C \ ../generate_alerts/WireFormats.C \ ../generate_alerts/NxCoreKafkaConsumer.C \ ../generate_alerts/data_framework/GenericL1Data.C \ ../generate_alerts/data_framework/L1Data.C \ ../generate_alerts/data_framework/GenericHaltData.C \ ../generate_alerts/data_framework/SynchronizedTimers.C \ ../generate_alerts/misc_framework/StandardPlaceholders.C \ ../generate_alerts/misc_framework/GenericDataNodes.C \ TclTopListRequestWrapper.C \ TopListRequest.C \ TclAlertConnectionWrapper.C \ AlertConnection.C \ TclGridObjectWrapper.C \ TclDatabaseObjectWrapper.C \ TclReplyToClient.C \ NamedReference.C \ TclNamedReference.C \ SingleCandle.C \ CandleCache.C \ CandleServer.C \ CandleClient.C \ TclDatabaseWrapper.C \ ReportAlertsTcl.C \ ReportAlertsThread.C \ UserInfo.C \ ExecutionContext.C \ GridWorkerThread.C \ EpochCounter.C \ ScriptDispatcher.C \ DailyCandles.C \ CandleDataProvider.C \ CandleTimer.C \ DataNodeThread.C \ OneMinuteCandles.C \ CandleDataNode.C \ GridReaderBase.C \ GridInstanceData.C \ TclObjCache.C \ GridFiller.C \ LimitAlert.C \ TclDataDebug.C \ TclLimitAlertWrapper.C \ TclLogWrapper.C \ ServerSigner.C \ LiveMain.C OBJECTS=$(SOURCES:.C=.o) DEPENDENCIES=$(OBJECTS:.o=.d) all: tikiller-live tikiller-live: $(OBJECTS) ../shared/shared.a $(CC) $(LDFLAGS) -o $@ $^ clean: rm -f $(OBJECTS) $(DEPENDENCEIS) tikiller-live $(MAKE) -C ../shared clean %.o: %.C $(CC) -o $@ $< $(CFLAGS) # http://owen.sj.ca.us/~rk/howto/slides/make/slides/makerecurs.html shows # how to make recursive make files. ../shared/shared.a: force_look $(MAKE) -C ../shared force_look: true # Read the .d files. g++ automatically creates these to list the header files # used by each *.C file. -include $(DEPENDENCIES)