#
#
#	$Id: yMakefile,v 1.58 2010-02-25 18:19:50 haley Exp $
#
#
#	Makefile for libncarg_c -- NCAR G common utilities
#
#

MYNAME		= libncarg_c

#if (defined(Linux) || defined(LINUX)) && !defined(linux)
#define linux
#endif

#if defined(CRAY)
EXCSRCS = logic64.c
EXFSRCS = gbytes.f sbytes.f
EXOBJS  = gbytes.o sbytes.o logic64.o

#elif defined(alpha)
EXCSRCS = bcopyswap.c logic32.c
EXFSRCS = gbytes.f sbytes.f
EXOBJS  = bcopyswap.o gbytes.o sbytes.o logic32.o

#elif (defined(ultrix) && defined(RISC))
EXCSRCS = bcopyswap.c s_abort.c gsbytes.c logic32.c
EXOBJS  = bcopyswap.o s_abort.o gsbytes.o logic32.o

#elif (defined(IRIX) || defined(IRIX64)) || defined(AIX)
EXCSRCS = logic32.c
EXFSRCS = gbytes.f sbytes.f
EXOBJS  = sbytes.o gbytes.o logic32.o

#elif (defined(ia64) || defined(x86_64) || defined(amd64))
EXCSRCS = bcopyswap.c logic32.c
EXFSRCS = gbytes.f sbytes.f
EXOBJS  = sbytes.o gbytes.o bcopyswap.o logic32.o

#elif defined(Darwin) && defined(i386) && defined(__LP64__)
EXCSRCS = bcopyswap.c logic32.c
EXFSRCS = gbytes.f sbytes.f
EXOBJS  = sbytes.o gbytes.o bcopyswap.o logic32.o

#elif defined(Darwin) && defined(i386) && !defined(__LP64__)
EXCSRCS = bcopyswap.c logic32.c gsbytes.c
EXOBJS  = bcopyswap.o logic32.o gsbytes.o

#elif defined(Darwin) && !defined(i386)
EXCSRCS = gsbytes.c logic32.c
EXOBJS  = gsbytes.o logic32.o

#elif defined(linux) && defined(ppc64)
EXCSRCS = logic32.c
EXFSRCS = sbytes.f gbytes.f
EXOBJS  = logic32.o sbytes.o gbytes.o
SHLIBSRCS = g77.c
SHLIBOBJS = g77.o 

#elif (defined(linux) && !defined(ia64) && !defined(ppc64)) || defined(i386)
EXCSRCS = bcopyswap.c gsbytes.c logic32.c
EXOBJS  = bcopyswap.o gsbytes.o logic32.o
SHLIBSRCS = g77.c
SHLIBOBJS = g77.o 

#elif !defined(alpha) && !(defined(ultrix) && defined(RISC)) && !(defined(linux) || defined(i386)) && !(defined(IRIX) || defined(IRIX64)) || !defined(AIX) && !defined(CRAY)
EXCSRCS = gsbytes.c logic32.c
EXOBJS  = gsbytes.o logic32.o
#endif

FCPP_SRCS = argget.f
FCPP_OBJS = argget.o

HDRS	= c.h 
CSRCS	= $(EXCSRCS) options.c misc.c ncarg_path.c version.c \
	error.c atoargv.c usleep.c env.c trnspprt.c \
	rwchinfl.c sdbm.c mangle.c
FSRCS	= $(EXFSRCS) $(FCPP_SRCS) lblank.f iargct.f i1mach.f r1mach.f \
	d1mach.f
OBJS	= $(EXOBJS) $(FCPP_OBJS) options.o misc.o ncarg_path.o \
	version.o error.o atoargv.o usleep.o env.o trnspprt.o lblank.o \
	iargct.o rwchinfl.o sdbm.o i1mach.o r1mach.o d1mach.o mangle.o

#if (defined(IRIX) && (MAJOR == 5)) || (defined(IRIX64) || (MAJOR == 6))
MY_DEFINES = -D_BSD_TYPES
#endif

EXTRA_CDEFINES =	$(OS_DEF) $(VENDOR_DEF) $(VDEFINE) $(MY_DEFINES) -DNCARGURL='$(NCARGURL)'

REQLIBS = $(CTOFLIBS) -lc

LibraryTarget($(MYNAME),$(OBJS))
InstallTarget($(HDRS),$(INSTALL_INC),$(NCARGINCPATH))
includes-local:: c.h
BuildIncludes($(HDRS),ncarg,..)
DependTarget($(CSRCS))

#if defined(i386) || defined(Darwin)
usleep.o: usleep.c
	$(CC) $(CCOPTIONS) $(COPT) -c usleep.c

sdbm.o: sdbm.c
	$(CC) $(CCOPTIONS) $(COPT) -c sdbm.c
#endif

#if defined(AIX)
sdbm.o: sdbm.c
	$(CC) $(CCOPTIONS) $(ALLDEFINES) -c sdbm.c
#endif

CleanFilesTarget(ncarg_path.c c.h)

ncarg_path.c: ncarg_path.c.sed Makefile
	@sed \
	-e 's+SED_ENV_DEFS+$(NGENV_DESCRIPT)+' \
	<ncarg_path.c.sed >ncarg_path.c

c.h: c.h.sed Makefile
	@sed \
	-e 's+SED_NGCALLF+$(NGCALLF)+' \
	<c.h.sed >c.h

BuildSharedLibTarget(libNGc,$(OBJS) $(SHLIBOBJS),1,0,$(REQLIBS))
