CC      = gcc
LD      = gcc
RM	= rm
CFLAGS  = $(PackageFlags) -c
LDFLAS  = $(PackageFlags) -o
INCL	= -I$$(pg_config --includedir)

BIN_NAME = weatherdeamon
OBJS	 = main.o config.o input.o process.o write.o

CONF_NAME = weatherd.conf

INSTDIR  = /usr/bin/
CONFDIR  = /etc/weatherstation/
DOCDIR   = /usr/share/doc/weatherstation-weatherd/
INSTGRP  = losinski
INSTUSR  = losinski


# Alles bauen
all: $(BIN_NAME)
#	$(MAKE) cleanup


# Binary Linken
$(BIN_NAME): $(OBJS)
	@ echo Linke: $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lpq $(LDFLAS) $(BIN_NAME) $(OBJS)
	@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lpq $(LDFLAS) $(BIN_NAME) $(OBJS)
	@ echo Binary $(BIN_NAME) ist fertig!

# Abhaengigkeiten
main.o: main.c main.h definitions.h config.h input.h
config.o: config.c config.h definitions.h
input.o: input.c input.h main.h config.h definitions.h process.h
process.o: process.c process.h main.h config.h definitions.h write.h
write.o: write.c write.h main.h definitions.h

# Compillieren
$(OBJS):
	@ echo "Kompilliere: "$(CC) $(DEBUG) $(NOLOG) $(INCL) $(CFLAGS) $*.c
	@ $(CC) $(DEBUG) $(NOLOG) $(INCL) $(CFLAGS) $*.c

# Programm mit debug-ausgabe bauen
debug: 
	@ echo "baue Version mit Debugoutput ..."
	@ $(MAKE) all DEBUG=-DDEBUG

# Programm ohne Log-ausgabe bauen
nolog:
	@ echo "baue Version ohne Logoutput ..."
	@ $(MAKE) all NOLOG=-DNO_LOGING

# Installieren
install:
	@ echo "kopiere $(BIN_NAME) nach $(DESTDIR)$(INSTDIR)"
	@ install -d $(DESTDIR)$(INSTDIR); \
	  install $(BIN_NAME) $(DESTDIR)$(INSTDIR)
	@ echo "kopiere $(CONF_NAME) nach $(DESTDIR)$(CONFDIR)"
	@ install -d $(DESTDIR)$(CONFDIR); \
	  install -m644 $(CONF_NAME) $(DESTDIR)$(CONFDIR)
	@ install -d $(DESTDIR)$(DOCDIR)  
	@ install -m644 COPYING $(DESTDIR)$(DOCDIR)


# Aufraeumnen (alle Object-Files loeschen)
cleanup:
	@ echo "Raeume auf..."
	@ echo "...entferne Object-Files:"
	@ echo "  " $(OBJS)
	@ $(RM) -f $(OBJS)

clean: cleanup
	@ echo "...loesche binary:"
	@ echo "  " $(BIN_NAME)
	@ rm -f $(BIN_NAME)
