# define the C compiler to use CC = gcc LIBS := -lpthread -lm #LIBS := -lpthread -lwebsockets # debug of not #$DBG = -g $DBG = # USe below to remove unused functions and global variables. #LFLAGS = -Wl,--gc-sections,--print-gc-sections #GCCFLAGS = -Wall -ffunction-sections -fdata-sections # define any compile-time flags GCCFLAGS = -Wall #CFLAGS = -Wall -g -lpthread -lwiringPi -lm -I. #CFLAGS = -Wall -g $(LIBS) -I/usr/local/include/ -L/usr/local/lib/ #CFLAGS = -Wall -g $(LIBS) -std=gnu11 -I/nas/data/Development/Raspberry/aqualink/libwebsockets-2.0-stable/lib -L/nas/data/Development/Raspberry/aqualink/libwebsockets-2.0-stable/lib #CFLAGS = -Wall -g $(LIBS) #CFLAGS = -Wall -g $(LIBS) -std=gnu11 CFLAGS = $(GCCFLAGS) $(DBG) $(LIBS) -D MG_DISABLE_MD5 -D MG_DISABLE_HTTP_DIGEST_AUTH -D MG_DISABLE_MD5 -D MG_DISABLE_JSON_RPC #CFLAGS = -Wall $(DBG) $(LIBS) -D MG_DISABLE_MQTT -D MG_DISABLE_MD5 -D MG_DISABLE_HTTP_DIGEST_AUTH -D MG_DISABLE_MD5 -D MG_DISABLE_JSON_RPC INCLUDES = -I/nas/data/Development/Raspberry/aqualink/aqualinkd # Add inputs and outputs from these tool invocations to the build variables # define the C source files SRCS = aqualinkd.c utils.c config.c aq_serial.c init_buttons.c aq_programmer.c net_services.c json_messages.c pda_menu.c mongoose.c SL_SRC = serial_logger.c aq_serial.c utils.c PDA_SRC = pda_test.c pda_menu.c aq_serial.c utils.c #AL_SRC = aquarite_logger.c aq_serial.c utils.c #AR_SRC = aquarite/aquarited.c aquarite/ar_net_services.c aquarite/ar_config.c aq_serial.c utils.c mongoose.c json_messages.c config.c OBJS = $(SRCS:.c=.o) SL_OBJS = $(SL_SRC:.c=.o) PDA_OBJS = $(PDA_SRC:.c=.o) #AL_OBJS = $(AL_SRC:.c=.o) #AR_OBJS = $(AR_SRC:.c=.o) # define the executable file MAIN = ./release/aqualinkd SLOG = ./release/serial_logger PDA = ./release/pda_test #AQUARITELOG = ./release/aquarite_logger AQUARITED = ./release/aquarited all: $(MAIN) @echo: $(MAIN) have been compiled $(MAIN): $(OBJS) $(CC) $(CFLAGS) $(INCLUDES) -o $(MAIN) $(OBJS) $(LFLAGS) $(LIBS) slog: $(SLOG) @echo: $(SLOG) have been compiled $(SLOG): $(SL_OBJS) $(CC) $(CFLAGS) $(INCLUDES) -o $(SLOG) $(SL_OBJS) pda: $(PDA) @echo: $(PDA) have been compiled $(PDA): $(PDA_OBJS) $(CC) $(CFLAGS) $(INCLUDES) -o $(PDA) $(PDA_OBJS) #aquaritelog: $(AQUARITELOG) # @echo: $(AQUARITELOG) have been compiled #$(AQUARITELOG): $(AL_OBJS) # $(CC) $(CFLAGS) $(INCLUDES) -o $(AQUARITELOG) $(AL_OBJS) aquarited: $(AQUARITED) @echo: $(AQUARITED) have been compiled $(AQUARITED): $(AR_OBJS) $(CC) $(CFLAGS) $(INCLUDES) -o $(AQUARITED) $(AR_OBJS) # this is a suffix replacement rule for building .o's from .c's # it uses automatic variables $<: the name of the prerequisite of # the rule(a .c file) and $@: the name of the target of the rule (a .o file) # (see the gnu make manual section about automatic variables) .c.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ clean: $(RM) *.o *~ $(MAIN) $(MAIN_U) depend: $(SRCS) makedepend $(INCLUDES) $^ install: $(MAIN) ./release/install.sh # All Target #all: aqualinkd # # Tool invocations #aqualinkd: $(OBJS) $(USER_OBJS) # @echo 'Building target: $@' # @echo 'Invoking: GCC C Linker' # gcc -L/home/perry/workspace/libwebsockets/Debug -pg -o"aqualinkd" $(OBJS) $(USER_OBJS) $(LIBS) # @echo 'Finished building target: $@' # @echo ' ' # # Other Targets #clean: # -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) aqualinkd # -@echo ' ' # #.PHONY: all clean dependents #.SECONDARY: # #-include ../makefile.targets