# Warnings that we should get rid of (in some sort order of importance)

WFLAGS	=

WFLAGS	+=	-Wall -pedantic
WFLAGS	+=	-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wimplicit -Wredundant-decls -Wnested-externs
WFLAGS	+=	 -W
#WGLAGS +=	 -Wold-style-definition
#WFLAGS	+=	-Wwrite-strings 
#WFLAGS	+=	-Wsign-compare -Winline 
#WFLAGS	+=	-Wswitch 
#WFLAGS	+=	-Wreturn-type -Wparentheses -Wmissing-braces 
#WFLAGS	+=	-Wformat -Wformat-nonliteral -Wformat-security
#WFLAGS	+=	-Wsequence-point 
#WFLAGS	+=	-Wunused-function -Wunused-label -Wunused-variable -Wunused-value -Wuninitialized
#WFLAGS	+=	-Wundef 

# Warnings that are almost impossible to handle, but can give nice clues...
#WFLAGS	+=	-Wconversion
WFLAGS	+=	-Werror


all: ngc ngdc pidfilehack pidfiledhack system_off splash_update

#CFLAGS=-Wall -W -pipe -fomit-frame-pointers -Os
#CFLAGS=-Wall -W -pipe -g -pedantic
CFLAGS=-pipe -g $(WFLAGS)
LDFLAGS=-g
CC=gcc
%.o: %.c
	$(CC) $(CFLAGS) -c $<

splash_update: splash_update.o
	$(CC) $(LDFLAGS) -o splash_update $^


pidfilehack: pidfilehack.o
	$(CC) $(LDFLAGS) -o pidfilehack $^

pidfiledhack: pidfiledhack.o
	$(CC) $(LDFLAGS) -o pidfiledhack $^

ngc: ngc.o
	$(CC) $(LDFLAGS) -o ngc $^

ngdc: ngdc.o
	$(CC) $(LDFLAGS) -o ngdc $^

system_off: system_off.o
	$(CC) $(LDFLAGS) -o system_off $^



ngdc.o: ngc.c ngc.h
	$(CC) $(CFLAGS) -DNGDC -c ngc.c -o ngdc.o

pidfiledhack.o: pidfilehack.c
	$(CC) $(CFLAGS) -DNGDC -c pidfilehack.c -o pidfiledhack.o



clean:
	rm *~ ; true
	rm *.o ; true
	rm ngc ngdc pidfilehack pidfiledhack system_off splash_update ; true
