# Non - official Makefile to compile Houdini plugins and
# standalone applications
# Author: Sebastian H. Schmidt
# Web: sebastian.h.schmidt <at> gmail.com
# WWW: subsites.org
#
# Use at your own risk !!
#
CC = g++
LINK = g++
# Find out which version of gcc we're using. We need at least gcc 3.
GCCVER := $(shell $(CXX) -dumpversion)
GCCVER_W_SPACES := $(subst ., ,$(GCCVER))
GCCMAJORVER := $(word 1,$(GCCVER_W_SPACES))
GCCMINORVER := $(word 2,$(GCCVER_W_SPACES))
GCC3 = 1
ifeq ($(GCCMAJORVER), 4)
GCC4 = 1
endif
# Check if this is a 64-bit platform.
#PLATFORM := $(shell uname -m)
#ifeq ($(PLATFORM), x86_64)
# AMD64 = 1
#endif
ifndef PLATFORM
PLATFORM := $(shell uname -m)
endif
ifeq ($(PLATFORM),i386)
MACHTYPE = x86_64
AMD64 = 1
endif
ifeq ($(PLATFORM),x86_64)
MACHTYPE = x86_64
AMD64 = 1
endif
ifeq ($(PLATFORM),ppc)
MACHTYPE = ppc64
PPC64 = 1
endif
ifeq ($(PLATFORM),ppc64)
MACHTYPE = ppc64
PPC64 = 1
endif
SYSTEMDEFS = -arch $(MACHTYPE)
ifdef AMD64
SYSTEMDEFS += -DAMD64 -fPIC
endif
SIZEOF_VOID_P = 4
ifdef AMD64
SIZEOF_VOID_P = 8
endif
ifdef PPC64
SIZEOF_VOID_P = 8
endif
ARCHDEFS = $(SYSTEMDEFS)
SIZEOF_DEFS = -DSIZEOF_VOID_P=$(SIZEOF_VOID_P)
INCINC = $(INCDIRS) -I$(HFS)/toolkit/include -I$(HFS)/toolkit/include/htools
WFLAGS = -Wall -W -Wno-parentheses -Wno-sign-compare -Wno-reorder -Wno-uninitialized -Wunused -Wno-unused-parameter
ifndef OPTIMIZER
OPTIMIZER = -O2
endif
HDEFINES = -DVERSION=\"$(HOUDINI_VERSION)\" -DDLLEXPORT="" -DMAKING_DSO -D_GNU_SOURCE -DMBSD -DMBSD_COCOA -DMBSD_INTEL $(ARCHDEFS) $(SIZEOF_DEFS) -DSESI_LITTLE_ENDIAN -DENABLE_THREADS -DUSE_PTHREADS -D_REENTRANT -D_FILE_OFFSET_BITS=64 -fobjc-gc-only -c -DGCC3
ifdef GCC4
HDEFINES += -DGCC4 -DGCC3 -Wno-deprecated
else
HDEFINES += -fno-exceptions
endif
HLIBINC = -L$(HFS)/dsolib
HLIBDIR = /Library/Frameworks/Houdini.framework/Versions/$(HOUDINI_VERSION)/Libraries
PLIBPATH = -L$HFS/python/lib
PYTHONLIB = "-lpython2.5"
HLIBS = -Wl,-rpath,${HLIBDIR} -L${HLIBDIR} -L$HFS/Frameworks/Houdini.framework/Versions/$(HOUDINI_VERSION)/Libraries -F$HFS/Frameworks -framework Houdini
SYSLIBS = -arch ${MACHTYPE} -fobjc-gc-only -framework OpenGL -framework Cocoa
SHAREDFLAG = -bundle
OBJOUTPUT = -o
DSOOUTPUT = -o
SAOUTPUT = -o
OBJFLAGS = -c $(HDEFINES) $(INCINC) $(WFLAGS) $(OPTIMIZER)
DSOFLAGS = $(SYSLIBINC) $(LIBDIRS) $(LIBS) $(HLIBS) $(SYSLIBS)
SAFLAGS = $(HLIBINC) $(PLIBPATH) $(HLIBS) $(PYTHONLIB) $(DSOFLAGS)
-