Skip to content
Snippets Groups Projects
Makefile.partiszg 3.8 KiB
Newer Older
slevy's avatar
slevy committed
# Makefile for partiview - please do not edit if the file is named "Makefile",
# since configure would overwrite it on the next configure. Edit "Makefile.in"
# instead, and run configure instead!!!
# If you must change configure.in, run autoconf, and then configure etc.

# the following variables are under AC control
# KIRA_INC, KIRA_LIB
# FLTK_INC, FLTK_LIB
# PV_FLAGS

SHELL = /bin/sh

# slevy hack for test compiling without szg:
# OBJ_SUFFIX = o
# SZG_USR_FIRST = ${CXX} -o partiszg 
# SZG_USR_SECOND = ${LIBS}
# GL_LIB = -lGL -lGLU -lX11

# TARGET
ALL = partiszg
LIBTARGET = libparti.a

CAVE_INC   = 
CAVE_LIB   = 

#KIRA_INC = -I$(STARLAB_PATH)/inc
#KIRA_LIB = -L$(STARLAB_PATH)/lib

#  AC variables KIRA_INC and KIRA_LIB automatically created
#  if $STARLAB_PATH present; override with --with-kira=
KIRA_INC = 
KIRA_LIB = 

THREAD_CFLAGS = 
THREAD_LIB = 

IEEEIO_INC = 
IEEEIO_LIB = 

ELUMENS_INC = 
ELUMENS_LIB = 

PORT_OBJS = 

M_LIB    = -lm

MAKEGUI	 = true

# FLAGS and BINARIES
PV_FLAGS    = -DUSE_WARP -DUSE_CONSTE -DUSE_MODEL # -Dunix
DEFS	    = $(PV_FLAGS)
OPT	    = -g # -O2 
INCL	    = $(CAVE_INC) $(KIRA_INC) $(ELUMENS_INC) $(IEEEIO_INC)
#CC          = gcc
CFLAGS      = $(OPT) $(THREAD_CFLAGS) $(DEFS) $(INCL)
#CXX	    = g++
CXXFLAGS    = $(OPT) $(DEFS) $(INCL)
AR	    = ar
ARFLAGS	    = -cr
LINK        = $(CXX) $(CXXFLAGS) $(THREAD_CFLAGS)
LIBS        = $(KIRA_LIB) $(ELUMENS_LIB) $(IEEEIO_LIB) $(CAVE_LIB) $(THREAD_LIB) $(GL_LIB) $(X_LIB) $(M_LIB)

API_CSRCS   = \
		geometry.c partibrains.c specks.c version.c \
		mgtexture.c textures.c async.c shmem.c \
		findfile.c sfont.c warp.c plugins.c version.c
API_CXXSRCS = \
		kira_parti.cc parti_model.cc cat_model.cc parti_ieee.cc \
		tcpsocket.cc
APP_CXXSRCS = \
		szgPartiview.cc szgPartiutil.cc \
		nethack.cc \
		conste.cc

PLUGIN_OBJS = \
		plugins.$(OBJ_SUFFIX) kira_parti.$(OBJ_SUFFIX) warp.$(OBJ_SUFFIX) nethack.$(OBJ_SUFFIX) parti_ieee.$(OBJ_SUFFIX) \
		elumens.$(OBJ_SUFFIX) parti_model.$(OBJ_SUFFIX) cat_model.$(OBJ_SUFFIX) \
		conste.$(OBJ_SUFFIX)

APP_OBJS    = \
		szgPartiview.$(OBJ_SUFFIX) szgPartiutil.$(OBJ_SUFFIX)

API_OBJS    = \
		geometry.$(OBJ_SUFFIX) partibrains.$(OBJ_SUFFIX) specks.$(OBJ_SUFFIX) version.$(OBJ_SUFFIX) \
		mgtexture.$(OBJ_SUFFIX) textures.$(OBJ_SUFFIX) async.$(OBJ_SUFFIX) \
		futil.$(OBJ_SUFFIX) findfile.$(OBJ_SUFFIX) sfont.$(OBJ_SUFFIX) \
		sclock.$(OBJ_SUFFIX) notify.$(OBJ_SUFFIX) shmem.$(OBJ_SUFFIX) \
		tcpsocket.$(OBJ_SUFFIX) \
		$(PORT_OBJS) \
		$(PLUGIN_OBJS) \
		$(MORE_OBJS)


partiszg$(EXE):	$(APP_OBJS) $(API_OBJS) $(SZG_LIBRARY_DEPS)
	$(SZG_USR_FIRST) $(APP_OBJS) $(API_OBJS) $(SZG_USR_SECOND)
	$(COPY)

$(LIBTARGET): libdepended $(API_OBJS)
	$(AR) $(ARFLAGS) $@  $(API_OBJS)

depended: Makefile version.c
	$(MAKE) depend
	touch depended  libdepended
	@echo "Re-running 'make'"
	$(MAKE)

libdepended: Makefile version.c
	$(MAKE) libdepend
	touch $@
	rm -f depended
	@echo "Re-running 'make $(LIBTARGET)'"
	$(MAKE) $(LIBTARGET)

help:
	@echo  Partiview
	@echo  

clean:
	rm -f *.o core Makedepend config.cache $(TARGET) $(LIBTARGET)
	touch Makedepend

cleanall: clean
	rm -f Makefile config.log config.status config.h

$(TARGET):  $(APP_OBJS) $(API_OBJS)
	$(LINK)  -o $@  $(APP_OBJS) $(API_OBJS) $(LIBS)
	$(MAKEGUI)

version.c: VERSION
	echo "char partiview_version[] = \"`cat VERSION`\";" > $@

version.$(OBJ_SUFFIX): version.c

.PHONEY: depend

# dep: depend
# depend:	_always

depend:
	rm -f Makedepend
	$(CC) -M $(CFLAGS) $(APP_CSRCS) $(API_CSRCS) > Makedepend
	$(CXX) -M $(CXXFLAGS) $(APP_CXXSRCS) $(API_CXXSRCS) >> Makedepend

libdepend:
	rm -f Makedepend
	$(CC) -M $(CFLAGS) $(API_CSRCS) > Makedepend
	$(CXX) -M $(CXXFLAGS) $(API_CXXSRCS) >> Makedepend

_always:

.SUFFIXES: .C .cc .cxx .cpp

.cc.$(OBJ_SUFFIX):
	$(CXX) -c $< $(CXXFLAGS) 
.cxx.$(OBJ_SUFFIX):
	$(CXX) -c $< $(CXXFLAGS)
.cpp.$(OBJ_SUFFIX):
	$(CXX) -c $< $(CXXFLAGS) 

include Makedepend