# Make XTC and TEK2PS
#
# 12/04/97  C.Ludescher
#  

# 6/3/99 D. Ernst - modified for Linux Portland Group pgf77 & Redhat 5.1,5.2

BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man

# AT PPPL,  tek2ps.pro, tek6up.pro, xtc_print and Xtc are in /usr/ntcc/etc/
#           Xtc: is xtc's defaults file
#           xtc_print: is sh script to print tek file to ps printer
#           (if printer does not handle it) 

SHR = ../share/Make.flags
ifneq ("$(wildcard $(CODESYSDIR)/source/misc/makeflags.mk)","")
	SHR = $(CODESYSDIR)/source/misc/makeflags.mk
endif
include $(SHR)

# If LOCAL is not defined, all objects and executables go into default dir
ifndef LOCAL
        OBJ=../$(MACHINE)
	EXE=$(OBJ)/test
else
# for TRANSP : $LOCAL is defined
	OBJ=${LOCAL}
	EXE=$(OBJ)/exe
endif
	OBJDIR=$(OBJ)/obj/xtctek


# Define Compiler Flags
#ifeq "$(origin CC)" "file"
#        CC=gcc
#endif


LOADL =-lXm -lXt -lX11
INCL  = -I$(MACHINE)

ifeq ($(MACHINE),SGI)
	CC = gcc
endif

ifeq ($(MACHINE),SUN)
	LOADL =-lsocket -lnsl -L/usr/openwin/lib -lXext -lXm -lXt -lX11
        INCL = -I/opt/SUNWmotif/share/include
endif

ifeq ($(MACHINE),HP)
	INCL = -I/usr/include/X11R5 -I/usr/include/Motif1.2
	LOADL = -L/usr/lib/Motif1.2 -lXm -L/usr/lib/X11R5 -lXt -lX11
endif

ifeq ($(MACHINE),AlphaLin)
# Metro Link "motif"
#       LOADL = -L/opt/motif21/lib -lXm -L/usr/X11R6/lib -lXp -lXt -lXext -lX11
#       INCL = -I/opt/motif21/include -I/usr/X11R6/include

# opensource motif
       LOADL = -L/usr/X11R6/lib -lXm -lXp -lXt -lXext -lX11
       INCL = -I/usr/X11R6/include
endif

ifeq ($(MACHINE),LINUX) # you may have to do 'ln -s /usr/X11 /usr/X11R6'
   ifneq ("$(wildcard /usr/X11R6/include/X11)","") 
	INCL = -I/usr/X11R6/include
   endif
   ifdef OPENMOTIF_HOME
       ML = -L$(OPENMOTIF_HOME)/lib
   endif    
   ifdef _64
	CFLAGS = -c -m64
        ifneq ("$(wildcard /usr/X11R6/lib64/libXm*)","") 
	  LOADL = $(ML) -L/usr/X11R6/lib64 -lXm -lXp -lXt -lXext -lX11
        else
          ifneq ("$(wildcard /usr/X11R6/lib/libXm*)","") 
	    LOADL = $(ML) -L/usr/X11R6/lib -lXm -lXp -lXt -lXext -lX11
          else
	    LOADL = $(ML) -L/usr/lib64 -lXm -lXp -lXt -lXext -lX11
          endif
        endif
   else
	LOADL = $(ML) -L/usr/X11R6/lib -lXm -lXp -lXt -lXext -lX11
   endif
endif

ifeq ($(MACHINE),MAC) 
	INCL = -I/sw/include -I/usr/X11R6/include 
	LOADL = -L/sw/lib -L/usr/X11R6/lib -lXm -lXp -lXt -lX11
endif

ifdef DEBUG
#	CFLAGS = $(DCFLAGS)
	CFLAGS := -g $(CFLAGS)
endif

OBJ_XTC=$(OBJDIR)/xtc.o $(OBJDIR)/xtccreate.o $(OBJDIR)/xtcwindow.o
OBJ_TEK=$(OBJDIR)/tek2ps.o $(OBJDIR)/tekopt.o

.PHONY: clean

all: init xtc_exe tek2ps_exe

init:
	@if test ! -d $(OBJDIR); then \
	mkdir -p $(OBJDIR); fi
	@if test ! -d $(EXE); then \
	mkdir $(EXE); fi


# Make XTC	
xtc_exe: $(EXE)/xtc
$(EXE)/xtc: $(OBJ_XTC)
	$(CC)  -o $(EXE)/xtc $(OBJ_XTC) $(LOADL)

$(OBJDIR)/xtc.o:  xtc.c xtcwc.h body.h icons.h
	$(CC) $(CFLAGS) $(INCL) -o $@ $<

$(OBJDIR)/xtccreate.o:	xtccreate.c xtcwc.h xtcvers.h
	$(CC) $(CFLAGS) $(INCL) -o $@ $<

$(OBJDIR)/xtcwindow.o:	xtcwindow.c xtek41.h
	$(CC) $(CFLAGS) $(INCL) -o $@ $<


# Make TEK2PS
tek2ps_exe:	$(EXE)/tek2ps
$(EXE)/tek2ps: $(OBJ_TEK)
	$(CC)  -o $(EXE)/tek2ps $(OBJ_TEK)

$(OBJDIR)/tek2ps.o:  tek2ps.c tek41.h
	$(CC) $(CFLAGS) $(CDEFS) -o $@ $<

$(OBJDIR)/tekopt.o:  tekopt.c
	$(CC) $(CFLAGS)  -o $@ $<

install:
	@cp $(EXE)/xtc $(BINDIR)/ 
	@cp $(EXE)/tek2ps $(BINDIR)/
	@if test ! -d $(MANDIR)/man1; then \
	mkdir $(MANDIR)/man1; fi 
	@cp xtc.1 $(MANDIR)/man1/
	@cp tek2ps.1 $(MANDIR)/man1/

clean:
	rm $(OBJDIR)/*.o
	rm $(EXE)/xtc $(EXE)/tek2ps


