# Makefile for /usr/miro/src/bin/ambig

#
#/*****************************************************************************
#                Copyright Carnegie Mellon University 1992
#
#                      All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice appear in all copies and that
# both that copyright notice and this permission notice appear in
# supporting documentation, and that the name of CMU not be
# used in advertising or publicity pertaining to distribution of the
# software without specific, written prior permission.
#
# CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
# CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
# SOFTWARE.
#*****************************************************************************/
#

include $(TOPLEVEL)/Makefile.include

EXEC = 		$(OBJECT_DIR)/ambig
SOURCE =	ambig.c box-type.c extract-elts.c id-table.c elts.c pict.c \
		rels.c sysname.c top.c
OBJ =		$(SOURCE:.c=.o)
OBJECTS =	$(OBJ;.*;$(OBJECT_DIR)/&)
HEADERS = 	$(SOURCE:.c=.h) sysname-types.h
GLOBALS =	rels.g top.g
MYLIBES =	$(LIB_DIR)/parse.a $(LIB_DIR)/extract.a
LIBES = 	-ll
ALL_LIBES =	$(MYLIBES) $(LIBES)

LINTLIBES =	$(LIB_DIR)/llib-lparse.ln\
		$(LIB_DIR)/llib-lextract.ln

# Lint Flags
# LINT_FLAGS = -abchx
LINT_FLAGS = -abh

# Use the following def for debugging:
# CFLAGS = -g -I$(INCLUDE_DIR)/ -DDEBUG -DMEASURE -DASSERT
# CFLAGS = -g -I$(INCLUDE_DIR)/ -DDEBUG -DASSERT
LDFLAGS = -L$(TOPLEVEL)/../lib/

# Use the following defs for profiling execution:
# CFLAGS = -O -I$(INCLUDE_DIR)/ -DDEBUG
# LDFLAGS =

# Use the following defs for optimization:
# CC = gcc
CFLAGS = -O -I$(INCLUDE_DIR)/
# LDFLAGS = -s

# Use feedback file
# FEEDFILE = $(PIXDIR)/$(EXEC).feedback
# CFLAGS   = -O2 -I$(INCLUDE_DIR)/ -cord -feedback $(FEEDFILE)


all: $(EXEC)

$(EXEC): $(OBJECTS) $(MYLIBES) $(FEEDFILE)
	$(CC) -o $(EXEC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(ALL_LIBES)
	chmod ugo+x $(EXEC)

# Makefile Inclusions (for header dependencies)
include $(TOPLEVEL)/../libi/make/parse-headers
include $(TOPLEVEL)/../libi/make/extract-headers

# Header File Dependencies
BOX_TYPE_H	= box-type.h
EXTRACT_ELTS_H	= extract-elts.h
SYSNAME_TYPES_H = sysname-types.h
TOP_H		= top.h
TOP_G		= top.g

ELTS_H		= $(SYSNAME_TYPES_H) $(BOX_TYPE_H) elts.h
RELS_H		= $(SYSNAME_TYPES_H) rels.h
RELS_G		= $(RELS_H) rels.g
ID_TABLE_H	= $(BOX_TYPE_H) $(ELTS_H) id-table.h
SYSNAME_H	= $(SYSNAME_TYPES_H) $(ELTS_H) sysname.h
AMBIG_H		= $(BOX_TYPE_H) $(ELTS_H) ambig.h
PICT_H		= $(BOX_TYPE_H) $(ID_TABLE_H) $(ELTS_H) $(SYSNAME_H) pict.h

$(OBJECT_DIR)/ambig.o: ambig.c $(MEM_H) $(SYSNAME_TYPES_H) $(ELTS_H) \
		       $(PICT_H) $(AMBIG_H) $(RELS_H) $(RELS_G) \
		       $(TOP_G)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/ambig.o ambig.c

$(OBJECT_DIR)/box-type.o: box-type.c $(MEM_H) $(BOX_TYPE_H) $(ELTS_H) \
			  $(ID_TABLE_H) $(PICT_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/box-type.o box-type.c

$(OBJECT_DIR)/extract-elts.o: extract-elts.c $(MEM_H) $(PARSER_G) \
			      $(CONVERT_H) $(EXTRACT_H) $(BOX_TYPE_H) \
			      $(EXTRACT_ELTS_H) $(SYSNAME_TYPES_H)\
			      $(ELTS_H) $(ID_TABLE_H) $(PICT_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/extract-elts.o extract-elts.c

$(OBJECT_DIR)/id-table.o: id-table.c $(MEM_H) $(BOX_TYPE_H) $(ELTS_H) \
			  $(ID_TABLE_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/id-table.o id-table.c

$(OBJECT_DIR)/elts.o: elts.c $(MEM_H) $(BOX_TYPE_H) $(ELTS_H) \
		      $(RELS_H) $(RELS_G)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/elts.o elts.c

$(OBJECT_DIR)/pict.o: pict.c $(MEM_H) $(BOX_TYPE_H) $(SYSNAME_TYPES_H) \
		      $(ELTS_H) $(ID_TABLE_H) $(PICT_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/pict.o pict.c

$(OBJECT_DIR)/rels.o: rels.c $(MEM_H) $(SYSNAME_TYPES_H) $(RELS_H) $(ELTS_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/rels.o rels.c

$(OBJECT_DIR)/sysname.o: sysname.c $(MEM_H) $(SYSNAME_TYPES_H) $(ELTS_H) \
			 $(SYSNAME_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/sysname.o sysname.c

$(OBJECT_DIR)/top.o: top.c $(MEM_H) $(BOX_TYPE_H) $(TOP_H) $(EXTRACT_ELTS_H) \
			   $(SYSNAME_TYPES_H) $(ELTS_H) $(AMBIG_H) $(PICT_H)
	cc -c $(CFLAGS) -o $(OBJECT_DIR)/top.o top.c

lint:
	lint $(LINT_FLAGS) $(SOURCE) $(GLOBALS) $(LINTLIBES)

wc:
	wc $(HEADERS) $(GLOBALS) $(SOURCE)

clean:
	rm -f $(OBJECTS)

