SHELL=/bin/sh
CC = gcc
C_FLAGS = -Wall -O2 
GTK_CFLAGS = `gtk-config --cflags`
GTK_LIBS = `gtk-config --libs`
PROGNAME-STATIC = LinPopUp-static
INSTALL_PATH = /usr/local/bin
PROGNAME = LinPopUp
VERSION = 0.9.1
VERSION_DATE = 1998


$(PROGNAME): version.o dialog.o main.o text.o menu.o toolbar.o io.o send.o recept.o custom.o	     
	$(CC) $(C_FLAGS) -v *.o -o $(PROGNAME) $(GTK_CFLAGS) $(GTK_LIBS)
		

install : 
	/usr/bin/install -m755 $(PROGNAME) $(INSTALL_PATH)	

uninstall : 
	rm -f $(INSTALL_PATH)/$(PROGNAME)



text.o: text.c  
	$(CC) -c $(C_FLAGS) text.c $(GTK_CFLAGS) 
	
menu.o: menu.c  
	$(CC) -c $(C_FLAGS) menu.c $(GTK_CFLAGS) 

toolbar.o: toolbar.c   
	$(CC) -c $(C_FLAGS) toolbar.c $(GTK_CFLAGS) 
		
dialog.o: dialog.c  user_guide_doc.h faq_doc.h changes_doc.h copying_doc.h
	$(CC) -c $(C_FLAGS) dialog.c $(GTK_CFLAGS) 	

io.o: io.c  
	$(CC) -c $(C_FLAGS) io.c $(GTK_CFLAGS) 			

send.o: send.c  
	$(CC) -c $(C_FLAGS) send.c $(GTK_CFLAGS) 
	
recept.o: recept.c  
	$(CC) -c $(C_FLAGS) recept.c $(GTK_CFLAGS) 			

main.o: main.c  
	$(CC) -c $(C_FLAGS) main.c $(GTK_CFLAGS)
	
custom.o: custom.c  
	$(CC) -c $(C_FLAGS) custom.c $(GTK_CFLAGS)
	
version.o: version.c version.h 
	$(CC) -c $(C_FLAGS) version.c $(GTK_CFLAGS)



user_guide_doc.h: README INSTALL mkhelp
	@cat README INSTALL > USER_GUIDE
	@./mkhelp USER_GUIDE user_guide_doc.h
	
faq_doc.h: FAQ mkhelp
	@./mkhelp FAQ faq_doc.h	
		
changes_doc.h: CHANGES mkhelp
	@./mkhelp CHANGES changes_doc.h		
	
copying_doc.h: COPYING mkhelp
	@./mkhelp COPYING copying_doc.h	
	
mkhelp: mkhelp.c 	     
	$(CC) $(C_FLAGS) mkhelp.c -o mkhelp
	

version.h : FORCE	
	@echo "/* this header is automatically generated */" > version.h
	@echo "/* and recreated for each new compilation */" >> version.h
	@echo "#define PROG_NAME \"$(PROGNAME)\"" >> version.h
	@echo "#define PROG_AUTHOR \"`cat AUTHORS`\"">>version.h
	@echo "#define PROG_VERSION \"$(VERSION)\"" >> version.h
	@echo "#define VERSION_DATE \"$(VERSION_DATE)\"">> version.h
	@echo "#define COMPILE_DATE \"`date +%D`\"" >> version.h
	@echo "#define COMPILE_TIME \"`date +%T`\"" >> version.h
	@echo "#define COMPILE_BY \"`whoami`\"" >> version.h
	@echo "#define COMPILE_HOST \"`hostname`\"" >> version.h
	@echo "#define GTK_VERSION \"GTK `gtk-config --version`\"" >> version.h
	@echo "#define CC_VERSION \"`$(CC) -v 2>&1 | tail -1`\"">>version.h
	
FORCE:	
	
clean: dist_clean
	rm -f $(PROGNAME) $(PROGNAME-STATIC) *.o  mkhelp

dist_clean:
	rm -f *~ *_doc.* version.h core  




###### ONLY FOR MAKING SOURCES AND BINARIES DISTRIBUTION USAGE ##########
 

$(PROGNAME-STATIC): main.o text.o menu.o toolbar.o dialog.o io.o send.o recept.o 	     
	$(CC) $(C_FLAGS) -v *.o -o $(PROGNAME-STATIC) $(GTK_CFLAGS) $(GTK_LIBS) -static 
	strip $(PROGNAME-STATIC)	
	

static: $(PROGNAME-STATIC)

all: $(PROGNAME) $(PROGNAME-STATIC)

dist: all dist_clean
	rm -f dist/*.tgz
	mkdir $(PROGNAME)-$(VERSION)
	mkdir $(PROGNAME)-$(VERSION)/pixmaps
	cp pixmaps/*.* $(PROGNAME)-$(VERSION)/pixmaps
	cp *.c $(PROGNAME)-$(VERSION)
	cp *.h $(PROGNAME)-$(VERSION)
	cp AUTHORS $(PROGNAME)-$(VERSION)
	cp BUGS $(PROGNAME)-$(VERSION)
	cp CHANGES $(PROGNAME)-$(VERSION)
	cp COPYING $(PROGNAME)-$(VERSION)
	cp FAQ $(PROGNAME)-$(VERSION)
	cp INSTALL $(PROGNAME)-$(VERSION)
	cp NEWS $(PROGNAME)-$(VERSION)
	cp README $(PROGNAME)-$(VERSION)
	cp TODO $(PROGNAME)-$(VERSION)
	cp VENDORS $(PROGNAME)-$(VERSION)
	cp THANKS $(PROGNAME)-$(VERSION)
	cp Makefile $(PROGNAME)-$(VERSION)
	#cp $(PROGNAME) $(PROGNAME)-$(VERSION)/$(PROGNAME)-glibc2-prebuild
	tar cvf $(PROGNAME)-$(VERSION).src.tar $(PROGNAME)-$(VERSION)
	gzip $(PROGNAME)-$(VERSION).src.tar
	mv $(PROGNAME)-$(VERSION).src.tar.gz dist/$(PROGNAME)-$(VERSION).src.tgz
	rm -f $(PROGNAME)-$(VERSION)/*.c
	rm -f $(PROGNAME)-$(VERSION)/*.h
	rm -Rf $(PROGNAME)-$(VERSION)/pixmaps
	cp $(PROGNAME-STATIC) $(PROGNAME)-$(VERSION)/$(PROGNAME)
	tar cvf $(PROGNAME)-$(VERSION).bin.tar $(PROGNAME)-$(VERSION)
	gzip -9 $(PROGNAME)-$(VERSION).bin.tar
	mv $(PROGNAME)-$(VERSION).bin.tar.gz dist/$(PROGNAME)-$(VERSION).bin.tgz
	rm -Rf $(PROGNAME)-$(VERSION)
	du -k dist/*.tgz
