#############################################################################
#       $Id: GNUmakefile,v 1.9 1995/07/30 03:50:02 rich Exp $
# $Revision: 1.9 $
#     $Date: 1995/07/30 03:50:02 $
#   $Author: rich $
#    $State: Exp $
#   $Locker:  $
#
# PROJECT:	TCA
#
# FILE:		GNUmakefile
#		Based on Erebus prototypical Makefile
#		Makefile.proto,v 1.1 1992/06/16 22:50:21 jwest Exp 
#
# DESCRIPTION:
# Makes the devUtils library and other utilities.
#
# EXPORTS:
#	The following targets are available as part of Makefile.std:
#		all bins libs privs objs
#		clean install
#		lint depend
#
# HISTORY:
#
# $Log: GNUmakefile,v $
# Revision 1.9  1995/07/30  03:50:02  rich
# Fix for output parsing routine.  Compile utils with -g.
#
# Revision 1.8  1995/07/08  17:52:26  rich
# Linux Changes.  Also added GNUmakefile.defs.
#
# Revision 1.7  1995/07/06  21:23:28  rich
# Solaris and Linux changes.
#
# Revision 1.6  1995/06/14  03:25:52  rich
# Added DBMALLOC_DIR.
# Fixed problems with multiple connections.
#
# Revision 1.5  1995/04/09  20:33:38  rich
# Added /usr/local/include and /usr/local/lib to the paths for compiling
# for sunOS machines. (Support for new vendor OS).
# Added EZX_WaitForButtonIn to wait for a use to push the mouse button
# over a widget.  Useful for teleporting robots.
#
# Revision 1.4  1995/04/07  05:11:03  rich
# Fixed GNUmakefiles to find the release directory.
# Moved all system includes into libc.h
# Moved global variables into the c files and got rid of #define DECLARE_...
# Now works with xavier stuff.
#
# Revision 1.3  1995/04/04  19:48:03  rich
# Added sgi support.
# Changed setAlarm to setTimer.
# Numerous improvements and bug fixes in devUtils.
#
# Revision 1.2  1995/04/04  18:11:52  rich
# Added support for compiling on sgi machines.  Use "gmake -k CC=cc install"
#
# Revision 1.1  1995/03/30  15:53:14  rich
# DBMALLOC works.  To use "gmake -k -w DBMALLOC=DBMALLOC install"
# Added ezx library and the devutils library.
#
#
#############################################################################

.KEEP_STATE:

#############################################################################
# Module configuration.
#############################################################################

INSTALL_DIR	= ..
BASE_DIR	:= $(shell cd $(INSTALL_DIR);/bin/pwd)
MODULE_DIR	= utils
PROJECT		= tca
MODULE		= tca
SUBDIRS		=
DEPEND_FILE	= GNUmakefile.$(THIS_MACHINE)
DEPEND_PREFIX	= $(ODIR)/ 

#############################################################################
# Standard Makefile Includes
#############################################################################

PWD 	:= $(shell /bin/pwd)
STD_FILE := $(shell ls $(INSTALL_DIR)/etc/GNUmakefile.std $(PROJECT_DIR)/etc/GNUmakefile.std 2>/dev/null | grep -v "not found" | head -1)
DEFS_FILE := $(shell ls $(INSTALL_DIR)/etc/GNUmakefile.defs $(PROJECT_DIR)/etc/GNUmakefile.defs 2>/dev/null | grep -v "not found" | head -1)

##########
# Include standard definitions
##########

include $(DEFS_FILE)

##########
# Override defaults here.
##########

CFLAGSD_	= -g -O2

##########
# File Definition Macros.  Deletion of generated files assumed
#    to be o.k.  Source files will never be deleted.
##########

# Generated files - installed
PUBLIC_BINS		= 
PUBLIC_LIBS		= libDevUtils.a libezx.a
PUBLIC_LINTS		= 

MODULE_LIBS		= 
MODULE_LINTS		= 

# Source files - installed
PUBLIC_INCS		= 
PUBLIC_MANS		= 
PUBLIC_DOCS		= 

MODULE_INCS		= devUtils.h stdinDev.h tcaDev.h x11Dev.h \
			handlers.h timeUtils.h ezx.h cursorx.h \
			x11Utils.h simDev.h

MODULE_DOCS		= 

INCS			= $(MODULE_INCS) $(PUBLIC_INCS)

# Generated files - not installed
PRIVS	= 

_DEV_OBJ	= devUtils.o stdinDev.o tcaDev.o x11Dev.o timeUtils.o \
		handlers.o x11Utils.o simDev.o

_EZX_OBJ	= ezx.o cursorx.o

DEV_OBJS            = $(patsubst %,$(ODIR)/%,$(_DEV_OBJ))

EZX_OBJS            = $(patsubst %,$(ODIR)/%,$(_EZX_OBJ))

OBJS            = $(DEV_OBJS) $(EZX_OBJS)

# Source files - not installed

SRCS            = timeUtils.c devUtils.c stdinDev.c tcaDev.c x11Dev.c \
		  handlers.c ezx.c cursorx.c x11Utils.c simDev.c

PRIVATE_INCS	= 

MISC		= GNUmakefile README

# All source files
SRCS_ALL	= $(INCS) $(PRIVATE_INCS) $(SRCS) $(MANS) $(DOCS) $(MISC)

# Files to be removed by 'make clean' and 'make realclean'
DELETES		= core $(DEPEND_FILE) \
	  	  $(PUBLIC_BINS) $(PUBLIC_LIBS) $(PUBLIC_LINTS) \
		  $(MODULE_LIBS) $(MODULE_LINTS) $(PRIVS) $(OBJS) make.state \
		  $(wildcard .nse_dep*) $(wildcard *.CKP) $(wildcard \#*\#) \
		  $(wildcard *~) $(wildcard .*~) $(wildcard *.CKP)\
	          $(wildcard *.BAK) $(wildcard .*.BAK)

# Files never to be removed, even if Make encounters an error
.PRECIOUS: $(SRCS_ALL) $(SUBDIRS)

##########
# Default Target
##########

all install_libs install :: $(ODIR)/.force $(LDIR)/.force $(BDIR)/.force

all:: srcs libs bins privs

##########
# User Defined Targets
##########

# Define rules for all files listed in BINS, LIBS, and LINTS in this section.
# Example executable, object, library, and combined objects are shown below:
#
#  $(BDIR)/sample: file1.o file2.o $(LIBDEP)
#	$(LINK.c) -o $@ file1.o file2.o $(LIBRARIES)
#
#  $(ODIR)/alternateName.o: file1.c
#	$(COMPILE.c) -o $@ file1.c
#
#  $(LDIR)/libsample.a: file1.o file2.o
#	-$(RM) $@
#	$(AR) $(ARFLAGS) $@ file1.o file2.o
#	$(RANLIB) $@
#
#  $(ODIR)/combined.o: $(ODIR)/part1.o $(ODIR)/part2.o
#	$(LD) -r -o $@ $(ODIR)/part1.o $(ODIR)/part2.o; chmod a-x $@

$(LDIR)/libDevUtils.a: $(DEV_OBJS)
	$(RM) $@
	$(AR) $(ARFLAGS) $@ $(DEV_OBJS)
	$(RANLIB) $@

$(LDIR)/libezx.a: $(EZX_OBJS)
	$(RM) $@
	$(AR) $(ARFLAGS) $@ $(EZX_OBJS)
	$(RANLIB) $@

##########
# Include standard target definitions and RCS rules
##########

include $(STD_FILE)
