Sebastian H. Schmidt | FX - Technical Director | Research & Development
home

HDK - Houdini Makefile for Mac

Since houdini has not provided a Makefile to compile Houdini plugins and standalone applications for the mac i've adapted the Hcustom options to use within a Mac Makefile. Give it a try and let me know how it goes.
Use with the provided MakeFiles from Sidefx,  just include the  Makefile.mac instead of the Makefile.linux

Download Here

 

  1. # Non - official Makefile to compile Houdini plugins and
  2. # standalone applications
  3. # Author: Sebastian H. Schmidt
  4. # Web: sebastian.h.schmidt <at> gmail.com
  5. # WWW: subsites.org
  6. #
  7. #  Use at your own risk !!
  8. #
  9. CC = g++
  10. LINK = g++
  11.  
  12. # Find out which version of gcc we're using.  We need at least gcc 3.
  13. GCCVER := $(shell $(CXX) -dumpversion)
  14. GCCVER_W_SPACES := $(subst ., ,$(GCCVER))
  15. GCCMAJORVER := $(word 1,$(GCCVER_W_SPACES))
  16. GCCMINORVER := $(word 2,$(GCCVER_W_SPACES))
  17.  
  18. GCC3 = 1
  19. ifeq ($(GCCMAJORVER), 4)
  20.     GCC4 = 1
  21. endif
  22.  
  23. # Check if this is a 64-bit platform.
  24. #PLATFORM := $(shell uname -m)
  25. #ifeq ($(PLATFORM), x86_64)
  26. #    AMD64 = 1
  27. #endif
  28.  
  29.  
  30. ifndef PLATFORM
  31.     PLATFORM := $(shell uname -m)
  32. endif
  33.  
  34. ifeq ($(PLATFORM),i386)
  35.   MACHTYPE = x86_64
  36.   AMD64 = 1
  37. endif
  38. ifeq ($(PLATFORM),x86_64)
  39.   MACHTYPE = x86_64
  40.   AMD64 = 1
  41. endif
  42.  
  43. ifeq ($(PLATFORM),ppc)
  44.   MACHTYPE = ppc64
  45.   PPC64 = 1
  46. endif
  47. ifeq ($(PLATFORM),ppc64)
  48.   MACHTYPE = ppc64
  49.   PPC64 = 1
  50. endif
  51.  
  52.  
  53. SYSTEMDEFS = -arch $(MACHTYPE)
  54. ifdef AMD64
  55.     SYSTEMDEFS +=  -DAMD64 -fPIC
  56. endif
  57.  
  58. SIZEOF_VOID_P = 4
  59. ifdef AMD64
  60.     SIZEOF_VOID_P = 8
  61. endif
  62.  
  63. ifdef PPC64
  64.     SIZEOF_VOID_P = 8
  65. endif
  66.  
  67.  
  68. ARCHDEFS = $(SYSTEMDEFS)
  69.  
  70. SIZEOF_DEFS = -DSIZEOF_VOID_P=$(SIZEOF_VOID_P)
  71.  
  72. INCINC = $(INCDIRS) -I$(HFS)/toolkit/include -I$(HFS)/toolkit/include/htools
  73. WFLAGS = -Wall -W -Wno-parentheses -Wno-sign-compare -Wno-reorder -Wno-uninitialized -Wunused -Wno-unused-parameter
  74. ifndef OPTIMIZER
  75.   OPTIMIZER = -O2
  76. endif
  77.  
  78.  
  79. 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
  80. ifdef GCC4
  81.    HDEFINES += -DGCC4 -DGCC3 -Wno-deprecated
  82. else
  83.    HDEFINES += -fno-exceptions
  84. endif
  85. HLIBINC   = -L$(HFS)/dsolib
  86. HLIBDIR  = /Library/Frameworks/Houdini.framework/Versions/$(HOUDINI_VERSION)/Libraries
  87. PLIBPATH  = -L$HFS/python/lib
  88. PYTHONLIB   = "-lpython2.5"
  89. HLIBS     = -Wl,-rpath,${HLIBDIR} -L${HLIBDIR} -L$HFS/Frameworks/Houdini.framework/Versions/$(HOUDINI_VERSION)/Libraries -F$HFS/Frameworks -framework Houdini
  90. SYSLIBS   = -arch ${MACHTYPE} -fobjc-gc-only -framework OpenGL -framework Cocoa
  91. SHAREDFLAG = -bundle
  92. OBJOUTPUT = -o
  93. DSOOUTPUT = -o
  94. SAOUTPUT = -o
  95. OBJFLAGS = -c $(HDEFINES) $(INCINC) $(WFLAGS) $(OPTIMIZER)
  96. DSOFLAGS = $(SYSLIBINC) $(LIBDIRS) $(LIBS) $(HLIBS) $(SYSLIBS)
  97. SAFLAGS = $(HLIBINC) $(PLIBPATH) $(HLIBS) $(PYTHONLIB) $(DSOFLAGS)