SHELL=/bin/sh
CC = gcc
CFLAGS = -Wall -O2 -m486 -fno-strength-reduce #-pedantic
GTK_CFLAGS = `gtk-config --cflags`
GTK_LIBS = `gtk-config --libs`
PROGNAME-STATIC = LinPopUp-static
DESTDIR = /usr/local
INSTALL_BINPATH = $(DESTDIR)/bin
INSTALL_MANPATH = $(DESTDIR)/man
PROGNAME = LinPopUp
PROGNAME_LNK = linpopup
VERSION = 0.9.4p
VERSION_DATE = 1998
DATA_FILE = /var/lib/linpopup/messages.dat
DATA_DIR = $(dir $(DATA_FILE))
RPM_RELEASE = 1
RPM_BUILDPATH = /usr/src/redhat
RPM_ICONNAME = linpopup.gif


$(PROGNAME): version.o dialog.o main.o text.o menu.o toolbar.o io.o send.o recept.o\
 	custom.o string.o	     
	$(CC) $(CFLAGS) -v $^ -o $(PROGNAME) $(GTK_CFLAGS) $(GTK_LIBS)


install : 
	/usr/bin/install -s -m755 $(PROGNAME) $(INSTALL_BINPATH)
	/usr/bin/install -m644 $(PROGNAME).1 $(INSTALL_MANPATH)/man1
	ln -fs $(INSTALL_BINPATH)/$(PROGNAME) $(INSTALL_BINPATH)/$(PROGNAME_LNK)
	ln -fs $(INSTALL_MANPATH)/man1/$(PROGNAME).1 $(INSTALL_MANPATH)/man1/$(PROGNAME_LNK).1	
	@if ! test -e $(DATA_DIR); then \
	  echo "Making $(DATA_DIR) directorie..."; mkdir -m0755 $(DATA_DIR); \
	else :; fi;	
	@if ! test -f $(DATA_FILE); then \
	  echo "Creating $(DATA_FILE),"; echo "	chmod it 0666, and chgrp it nobody...";\
	  cat /dev/null > $(DATA_FILE); \
	  chmod 0666 $(DATA_FILE); chgrp nobody $(DATA_FILE);\
	else :;fi;


uninstall : 
	rm -f $(INSTALL_BINPATH)/$(PROGNAME) 
	rm -f $(INSTALL_MANPATH)/man1/$(PROGNAME).1
	rm -f $(INSTALL_BINPATH)/$(PROGNAME_LNK) 
	rm -f $(INSTALL_MANPATH)/man1/$(PROGNAME_LNK).1
	@echo "---"
	@echo "You may now remove by hand any .linpopuprc files" 
	@echo "that resides in users home directories..."
	@echo


.c.o:
	$(CC) -c $(CFLAGS) -DDATA_FILE=\"$(DATA_FILE)\" $< $(GTK_CFLAGS) 

dialog.o: dialog.c readme_doc.h manual_doc.h faq_doc.h changes_doc.h \
          copying_doc.h

version.o: version.c version.h 



manual_doc.h: $(PROGNAME).1 distrib/mkhelp
	@man ./$(PROGNAME).1 | col -bx > MANUAL 
	@distrib/mkhelp MANUAL manual_doc.h
	@rm -f MANUAL

readme_doc.h: README distrib/mkhelp
	@distrib/mkhelp README readme_doc.h


faq_doc.h: FAQ distrib/mkhelp
	@distrib/mkhelp FAQ faq_doc.h

changes_doc.h: CHANGES distrib/mkhelp
	@distrib/mkhelp CHANGES changes_doc.h		

copying_doc.h: COPYING distrib/mkhelp
	@distrib/mkhelp COPYING copying_doc.h

distrib/mkhelp: distrib/mkhelp.c 	     
	$(CC) $(CFLAGS) distrib/mkhelp.c -o distrib/mkhelp


doc:
	@if test -x /usr/bin/pod2man; then \
	    pod2man distrib/$(PROGNAME).pod \
		--center="$(PROGNAME) User's Manual" \
		--release="$(PROGNAME) Version $(VERSION)" \
		> distrib/$(PROGNAME).1.in; \
	fi;
	@sed -e s,THIS_DATA_FILE,$(DATA_FILE), \
	     -e s,THIS_DESTDIR,$(DESTDIR), \
	     -e s,THIS_VERSION,$(VERSION), \
	      distrib/$(PROGNAME).1.in >  $(PROGNAME).1
	@sed -e s,THIS_DESTDIR,$(DESTDIR), distrib/install.in > INSTALL


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) 

dist_clean:
	rm -f *~ *.o *_doc.* version.h core build/* distrib/mkhelp 




###### ONLY FOR BUILDING DISTRIBUTION USAGE ##########
 

$(PROGNAME-STATIC): 	     
	$(CC) $(CFLAGS) -v *.o -o $(PROGNAME-STATIC) $(GTK_CFLAGS) $(GTK_LIBS) -static 
	strip $(PROGNAME-STATIC)	
  

dist:  doc $(PROGNAME) $(PROGNAME-STATIC) dist_clean
	mkdir $(PROGNAME)-$(VERSION)
	mkdir $(PROGNAME)-$(VERSION)/pixmaps
	mkdir $(PROGNAME)-$(VERSION)/distrib
	cp pixmaps/*.* $(PROGNAME)-$(VERSION)/pixmaps
	cp distrib/*.* $(PROGNAME)-$(VERSION)/distrib
	cp *.c *.h *.1 *.lsm\
	   AUTHORS THANKS BUGS CHANGES COPYING FAQ INSTALL NEWS README \
	   TODO VENDORS Makefile $(PROGNAME)-$(VERSION)
	tar cvf $(PROGNAME)-$(VERSION).src.tar $(PROGNAME)-$(VERSION)
	gzip $(PROGNAME)-$(VERSION).src.tar
	mv $(PROGNAME)-$(VERSION).src.tar.gz build/$(PROGNAME)-$(VERSION).src.tgz
	rm -f $(PROGNAME)-$(VERSION)/*.c $(PROGNAME)-$(VERSION)/*.h
	rm -Rf $(PROGNAME)-$(VERSION)/pixmaps $(PROGNAME)-$(VERSION)/distrib
	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 build/$(PROGNAME)-$(VERSION).bin.tgz
	cp $(PROGNAME).lsm build/
	rm -Rf $(PROGNAME)-$(VERSION)
	du -k build/*.tgz

rpm: dist 
	sed -e s,THIS_VERSION,$(VERSION), \
	    -e s,THIS_RPM_RELEASE,$(RPM_RELEASE), \
	    -e s,THIS_DATA_FILE,$(DATA_FILE), \
	    -e s,THIS_DATA_DIR,$(DATA_DIR), \
	    distrib/$(PROGNAME).spec > $(RPM_BUILDPATH)/SPECS/$(PROGNAME)-$(VERSION).spec
	cp -f build/$(PROGNAME)-$(VERSION).src.tgz $(RPM_BUILDPATH)/SOURCES
	cp -f distrib/$(RPM_ICONNAME) $(RPM_BUILDPATH)/SOURCES
	rpm -ba --clean $(RPM_BUILDPATH)/SPECS/$(PROGNAME)-$(VERSION).spec
	mv $(RPM_BUILDPATH)/RPMS/i386/$(PROGNAME)-$(VERSION)-$(RPM_RELEASE)* build/
	mv $(RPM_BUILDPATH)/SRPMS/$(PROGNAME)-$(VERSION)-$(RPM_RELEASE)* build/      
    
