XCOMM
XCOMM  Imakefile
XCOMM
XCOMM ** Copyright (C) 1995, 1996, 1997 Johannes Plass
XCOMM 
XCOMM  This program is free software; you can redistribute it and/or modify
XCOMM  it under the terms of the GNU General Public License as published by
XCOMM  the Free Software Foundation; either version 2 of the License, or
XCOMM  (at your option) any later version.
XCOMM 
XCOMM  This program is distributed in the hope that it will be useful,
XCOMM  but WITHOUT ANY WARRANTY; without even the implied warranty of
XCOMM  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
XCOMM  GNU General Public License for more details.
XCOMM 
XCOMM  You should have received a copy of the GNU General Public License
XCOMM  along with this program; if not, write to the Free Software
XCOMM  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XCOMM 
XCOMM  Author:   Johannes Plass (plass@thep.physik.uni-mainz.de)
XCOMM            Department of Physic
XCOMM            Johannes Gutenberg-University
XCOMM            Mainz, Germany
XCOMM

GV_CONFIG_FILE = ../config.Unix
#include "../config.Unix"

SRCS_0 =\
 Aaa.c\
 Aaa_bison.c\
 Aaa_lex.c\
 Button.c\
 Clip.c\
 FileSel.c\
 Frame.c\
 Ghostview.c\
 MButton.c\
 Switch.c\
 Vlist.c\
 actions.c\
 action_mag.c\
 callbacks.c\
 confirm.c\
 dialog.c\
 doc_misc.c\
 error.c\
 file.c\
 info.c\
 main.c\
 main_parseCmdLine.c\
 misc.c\
 misc_private.c\
 note.c\
 options.c\
 process.c\
 popup.c\
 popup_misc.c\
 ps.c\
 save.c\
 signal.c\
 version.c\
 widgets_misc.c\
 zoom.c

OBJS_0 =\
 Aaa.o\
 Aaa_bison.o\
 Aaa_lex.o\
 Button.o\
 Clip.o\
 FileSel.o\
 Frame.o\
 Ghostview.o\
 MButton.o\
 Switch.o\
 Vlist.o\
 actions.o\
 action_mag.o\
 callbacks.o\
 confirm.o\
 dialog.o\
 doc_misc.o\
 error.o\
 file.o\
 info.o\
 main.o\
 main_parseCmdLine.o\
 misc.o\
 misc_private.o\
 note.o\
 options.o\
 process.o\
 popup.o\
 popup_misc.o\
 ps.o\
 save.o\
 signal.o\
 version.o\
 widgets_misc.o\
 zoom.o

#ifdef CONVERT_INCLUDE_DIRECTIVES
Aaa.o : converted

converted :
	@./inc_2lit
	@echo "" > converted
#endif

#ifdef USE_MEMDEBUG_CODE
   USER_DEFS_1	= $(MEMDEBUG_TYPES)
   SRCS_1	= d_mem.c d_xtmem.c
   OBJS_1	= d_mem.o d_xtmem.o
#endif

#ifdef USE_RUNTIME_MESSAGES
   USER_DEFS_2	= -DMESSAGES -DMESSAGE_NO_ESC
#endif

#ifdef USE_SIGNAL_HANDLER
   USER_DEFS_3	= -DUSE_SIGNAL_HANDLER
#endif

#ifdef USE_SETENV_CODE
   SRCS_4	= setenv.c getenv.c
   OBJS_4	= setenv.o getenv.o
#endif

#ifdef USE_MEMMOVE_CODE
   USER_DEFS_5	= -DUSE_MEMMOVE_CODE
#endif

#ifdef USE_SCROLLBAR_CODE
   SRCS_6	= Scrollbar.c
   OBJS_6	= Scrollbar.o
#endif

USER_DEFS_7	= -DUSER_DEFAULTS=\"$(USER_DEFAULTS)\"
USER_DEFS_8	= -DGV_LIBDIR=\"$(GV_LIBDIR)\" -DGV_CODE $(XAW3D_HEADERS)

#ifdef USE_FALLBACK_RESOURCES
   USER_DEFS_9	= -DUSE_FALLBACK_RESOURCES
#endif

#ifdef USE_FALLBACK_FILES
   USER_DEFS_10	= -DUSE_FALLBACK_FILES
#endif

SYS_LIBS_1	= -lm XawClientLibs

#ifdef USE_PIXMAP_CODE
   SYS_LIBS_2	= -lXpm
#endif

USER_DEFINES = $(USER_DEFS_0) $(USER_DEFS_1) $(USER_DEFS_2) $(USER_DEFS_3)\
 $(USER_DEFS_4) $(USER_DEFS_5) $(USER_DEFS_6) $(USER_DEFS_7)\
 $(USER_DEFS_8) $(USER_DEFS_9) $(USER_DEFS_10) $(USER_DEFS_11)
SRCS = $(SRCS_0) $(SRCS_1) $(SRCS_2) $(SRCS_3) $(SRCS_4) $(SRCS_5)\
 $(SRCS_6) $(SRCS_7) $(SRCS_8) $(SRCS_9) $(SRCS_10) $(SRCS_11)
OBJS = $(OBJS_0) $(OBJS_1) $(OBJS_2) $(OBJS_3) $(OBJS_4) $(OBJS_5)\
 $(OBJS_6) $(OBJS_7) $(OBJS_8) $(OBJS_9) $(OBJS_10) $(OBJS_11)
SYS_LIBRARIES = $(SYS_LIBS_0) $(SYS_LIBS_1) $(SYS_LIBS_2) $(SYS_LIBS_3)\
 $(SYS_LIBS_4) $(SYS_LIBS_5) $(SYS_LIBS_6) $(SYS_LIBS_7)\
 $(SYS_LIBS_8) $(SYS_LIBS_9) $(SYS_LIBS_10) $(SYS_LIBS_11)

DEFINES		= -DNON_BLOCKING_IO $(SIGNAL_DEFINES) $(USER_DEFINES)
DEPLIBS		= XawClientDepLibs
INSTDATFLAGS	= -m 0644

GV_FONT_RES_DAT     = gv_font_res.dat
GV_BITMAPS_RES_DAT  = gv_bitmaps_res.dat
GV_MAKE_RES_DAT     = gv_make_res.dat
GV_MISC_RES_DAT     = gv_misc_res.dat
GV_USER_RES_DAT     = gv_user_res.dat
GV_INTERN_RES_DAT   = gv_intern_res_unix.dat
GV_INTERN_RES_H     = gv_intern_res_unix.h
GV_LAYOUT_RES_DAT   = gv_layout_res.dat
GV_COPYRIGHT_DAT    = gv_copyright.dat
GV_MESSAGES_DAT     = gv_messages.dat
GV_MESSAGES_H       = gv_messages.h
APP_DEFAULTS_H      = app-defaults.h
GV_CLASS_NAME       = GV
GV_AD               = $(GV_CLASS_NAME).ad
GV_USER_AD          = $(GV_CLASS_NAME).user.ad
GV_SOURCE_IMAKEFILE = ./Imakefile

#if defined(USE_FALLBACK_RESOURCES) || defined(USE_FALLBACK_FILES)
depend:: $(APP_DEFAULTS_H) $(GV_MESSAGES_H) $(GV_USER_AD) $(GV_AD) $(GV_INTERN_RES_H)
#endif

install::
	MakeDir($(GV_LIBDIR))

#ifdef InstallProgram
#   undef InstallProgram
#endif
#ifndef InstallProgram
#   define	InstallProgram(program,dest)			@@\
InstallProgramWithFlags(program,$(GV_BINDIR),NullParameter)
#endif /* InstallProgram */

MANDIR=$(GV_MANDIR)
ComplexProgramTarget(gv)
InstallNonExec(gv_spartan.dat,$(GV_LIBDIR))
InstallNonExec($(GV_AD),$(GV_LIBDIR))
InstallNonExec($(GV_USER_AD),$(GV_LIBDIR))
#ifndef USE_FALLBACK_FILES
   InstallNonExec(gv_doc.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_icon.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_selected.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_odd.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_even.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_current.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_unmark.xbm,$(GV_LIBDIR))
   InstallNonExec(gv_empty.xbm,$(GV_LIBDIR))
   InstallNonExec($(GV_MESSAGES_DAT),$(GV_LIBDIR))
#endif
#ifndef USE_FALLBACK_RESOURCES
   InstallAppDefaults($(GV_CLASS_NAME))
#endif

gv : $(GV_USER_AD) $(GV_AD)

main.o: $(GV_INTERN_RES_H)

#ifdef USE_FALLBACK_FILES
main.o:	$(GV_MESSAGES_H)
#endif

#ifdef USE_FALLBACK_RESOURCES
main.o:	$(APP_DEFAULTS_H)
#endif

$(APP_DEFAULTS_H):	$(GV_AD)
	@echo "creating $(APP_DEFAULTS_H)"
	@sh ./ad2c $(GV_AD) > $(APP_DEFAULTS_H)

$(GV_MESSAGES_H):	$(GV_MESSAGES_DAT)
	@echo "creating $(GV_MESSAGES_DAT)"
	@sh ./ad2c $(GV_MESSAGES_DAT) > $(GV_MESSAGES_H)

includes::$(GV_INTERN_RES_H)

$(GV_INTERN_RES_H):	$(GV_INTERN_RES_DAT)
	@echo "creating $(GV_INTERN_RES_H)"
	@sh ./ad2c $(GV_INTERN_RES_DAT) > $(GV_INTERN_RES_H)

$(GV_AD): $(GV_FONT_RES_DAT) $(GV_LAYOUT_RES_DAT)\
	  $(GV_MAKE_RES_DAT) $(GV_MISC_RES_DAT)   $(GV_USER_RES_DAT)
	@echo "creating $(GV_AD)"
	@cp $(GV_COPYRIGHT_DAT)					   $(GV_AD)
	@echo "!"						>> $(GV_AD)
	@echo "!  $(GV_AD)"					>> $(GV_AD)
	@echo "!  Application class defaults for gv"		>> $(GV_AD)
	@echo "!  Copyright (C) 1995, 1996, 1997  Johannes Plass"	>> $(GV_AD)
	@echo "!"						>> $(GV_AD)
	@echo ""						>> $(GV_AD)
	@cat $(GV_USER_RES_DAT)					>> $(GV_AD)
	@cat $(GV_MAKE_RES_DAT)					>> $(GV_AD)
	@cat $(GV_FONT_RES_DAT)					>> $(GV_AD)
	@cat $(GV_MISC_RES_DAT)					>> $(GV_AD)
	@cat $(GV_LAYOUT_RES_DAT)				>> $(GV_AD)

$(GV_USER_AD): $(GV_INTERN_RES_DAT) $(GV_MAKE_RES_DAT)
	@echo "creating $(GV_USER_AD)"
	@echo "!"						>  $(GV_USER_AD)
	@echo "!  $(GV_USER_AD)"				>> $(GV_USER_AD)
	@echo "!  User specific application defaults for gv"	>> $(GV_USER_AD)
	@echo "!  Copyright (C) 1995, 1996, 1997  Johannes Plass"	>> $(GV_USER_AD)
	@echo "!"						>> $(GV_USER_AD)
	@cat $(GV_USER_RES_DAT)					>> $(GV_USER_AD)
	@cat $(GV_INTERN_RES_DAT)				>> $(GV_USER_AD)
	@cat $(GV_MAKE_RES_DAT)					>> $(GV_USER_AD)

$(GV_MAKE_RES_DAT): $(GV_CONFIG_FILE) $(GV_SOURCE_IMAKEFILE) $(GV_BITMAPS_RES_DAT)
	@echo "creating $(GV_MAKE_RES_DAT)"
	@echo ""							>  $(GV_MAKE_RES_DAT)
	@echo  "!########## gv_make_res.dat (generated by makefile)"	>> $(GV_MAKE_RES_DAT)
	@echo ""							>> $(GV_MAKE_RES_DAT)
	@echo "GV.scratchDir:		$(SCRATCH_DIR)"			>> $(GV_MAKE_RES_DAT)
	@echo "GV.defaultSaveDir:	$(SAVE_DIR)"			>> $(GV_MAKE_RES_DAT)
	@echo "GV.fallbackPagemedia:	$(PAPERSIZE)"			>> $(GV_MAKE_RES_DAT)
	@echo ""							>> $(GV_MAKE_RES_DAT)
	@cat $(GV_BITMAPS_RES_DAT)					>> $(GV_MAKE_RES_DAT)

#ifdef USE_FALLBACK_FILES
$(GV_BITMAPS_RES_DAT): $(GV_CONFIG_FILE)
	@echo "creating $(GV_BITMAPS_RES_DAT)"
	@echo ""	> 	$(GV_BITMAPS_RES_DAT)

#else

$(GV_BITMAPS_RES_DAT): $(GV_CONFIG_FILE) $(GV_SOURCE_IMAKEFILE)
	@echo "creating $(GV_BITMAPS_RES_DAT)"
	@echo "GV.documentBitmap:	$(DOC_BMP)"	 >  $(GV_BITMAPS_RES_DAT)
	@echo "GV.iconPixmap:		$(ICON_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.selectedBitmap:	$(SELECTED_BMP)" >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.messageFile:		$(MESSAGES_DAT)" >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.toggleOddBitmap:	$(ODD_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.toggleEvenBitmap:	$(EVEN_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.toggleCurrentBitmap:	$(CURRENT_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.unmarkAllBitmap:	$(UNMARK_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo "GV.markEmptyBitmap:	$(EMPTY_BMP)"	 >> $(GV_BITMAPS_RES_DAT)
	@echo ""					 >> $(GV_BITMAPS_RES_DAT)
#endif

#ifdef PRODUCE_PS_LEVEL_ONE
        PS_LEVEL = -dPSLevel1
#endif

$(GV_INTERN_RES_DAT): $(GV_CONFIG_FILE)
	@echo "creating $(GV_INTERN_RES_DAT)"
	@echo "" 							 >  $(GV_INTERN_RES_DAT)
	@echo "!########## gv_intern_res.dat (generated by makefile)" >> $(GV_INTERN_RES_DAT)
	@echo ""							>> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsInterpreter:	gs" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsCmdScanPDF:	gs -dNODISPLAY -dQUIET -sPDFname=%s -sDSCname=%s pdf2dsc.ps -c quit" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsCmdConvPDF:	gs -dNODISPLAY -dQUIET $(PS_LEVEL) -dNOPAUSE -sPSFile=%s %s -c quit" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsX11Device:	-sDEVICE=x11" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsX11AlphaDevice:-dNOPLATFONTS -sDEVICE=x11alpha" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsSafer:	True" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsQuiet:	True" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.gsArguments:" >> $(GV_INTERN_RES_DAT)
	@echo "GVintern.printCommand:	$(PRINT_COMMAND)" >> $(GV_INTERN_RES_DAT)

clean::
	$(RM) $(APP_DEFAULTS_H)
	$(RM) $(GV_INTERN_RES_DAT)
	$(RM) $(GV_INTERN_RES_H)
	$(RM) $(GV_MAKE_RES_DAT)
	$(RM) $(GV_BITMAPS_RES_DAT)
	$(RM) $(GV_MESSAGES_H)
	$(RM) $(GV_AD)
	$(RM) $(GV_USER_AD)
	$(RM) *.x
	$(RM) converted
