SYST=Solaris

CC=gcc
CCC=g++
.SUFFIXES: .cpp .c

CC_FLAGS=-g #-O3
CCC_FLAGS=-g #-O3

DEFINES= -DUNIX -DSOLARIS -DCOLOR_ABGR  -DHAS_IMAGE_MAGICK


LIB_NAME=Photon4D
FULL_LIB_NAME=Bin_$(SYST)/lib$(LIB_NAME).a
GFX_LIBS_PATH=/u/dea_these/these/diard/libSun

SPEC_INCLUDES_PATH= -I../DMsg++ -I. -I/usr/openwin/include
SPEC_LIBS_PATH= -L. -LBin_$(SYST) -L../DMsg++/Bin_$(SYST)\
-L$(GFX_LIBS_PATH)/ImageMagick/magick -L$(GFX_LIBS_PATH)/jpeg\
-L$(GFX_LIBS_PATH)/tiff/libtiff -L/usr/openwin/lib

SPEC_LIBS= -l$(LIB_NAME)  -lDMsg -lMagick -ljpeg -ltiff -lX11 -lXext
STD_LIBS= -lm
AR=CC 
AR_OPTIONS= -xar -o
LNFLAGS=

.c.o:
	$(CC) -c -o Bin_$(SYST)/$*.o (CC_FLAGS) $(DEFINES) $(SPEC_INCLUDES_PATH) $<

.cpp.o:
	$(CCC) -c $(CCC_FLAGS) $(DEFINES) $(SPEC_INCLUDES_PATH) $<

.c.a:
	$(CC) -c -o Bin_$(SYST)/$*.o $(CC_FLAGS) $(DEFINES) $(SPEC_INCLUDES_PATH) $(?:.o=.c)
	ar r $@ Bin_$(SYST)/$*.o
	rm -f Bin_$(SYST)/$*.o
.cpp.a:
	$(CCC) -c -o Bin_$(SYST)/$*.o $(CCC_FLAGS) $(DEFINES) $(SPEC_INCLUDES_PATH) $(?:.o=.cpp)
	$(AR) $(AR_OPTIONS) $@ Bin_$(SYST)/$*.o
#	rm -f Bin_$(SYST)/$*.o
#Bin_$(SYST)/PrepareFoireux.o
Bin_$(SYST)/main: $(FULL_LIB_NAME) Bin_$(SYST)/main.o
	$(CCC) $(LNFLAGS) -o Bin_$(SYST)/main Bin_$(SYST)/main.o  $(SPEC_LIBS_PATH) $(SPEC_LIBS) $(STD_LIBS)

Bin_$(SYST)/main.o : main.cpp
	$(CCC) -c -o $@ $(CCC_FLAGS) $(DEFINES) $(SPEC_INCLUDES_PATH) $(?:.o=.cpp)

$(FULL_LIB_NAME): $(FULL_LIB_NAME)(Image.o) \
$(FULL_LIB_NAME)(System.o) \
$(FULL_LIB_NAME)(ImageIo.o) \
$(FULL_LIB_NAME)(ColorMap.o) \
$(FULL_LIB_NAME)(Polygs.o) \
$(FULL_LIB_NAME)(AnalogicImageSource.o) \
$(FULL_LIB_NAME)(Bbox.o) \
$(FULL_LIB_NAME)(Bunch.o) \
$(FULL_LIB_NAME)(BunchManager.o) \
$(FULL_LIB_NAME)(Camera.o) \
$(FULL_LIB_NAME)(Color.o) \
$(FULL_LIB_NAME)(Flat.o) \
$(FULL_LIB_NAME)(Frame.o) \
$(FULL_LIB_NAME)(Grids.o) \
$(FULL_LIB_NAME)(InterStack.o) \
$(FULL_LIB_NAME)(Light.o) \
$(FULL_LIB_NAME)(Mappers.o) \
$(FULL_LIB_NAME)(Math.o) \
$(FULL_LIB_NAME)(Matrix.o) \
$(FULL_LIB_NAME)(Methods_Cone.o) \
$(FULL_LIB_NAME)(Methods_Cube.o) \
$(FULL_LIB_NAME)(Methods_DensVox.o) \
$(FULL_LIB_NAME)(Methods_Facets.o) \
$(FULL_LIB_NAME)(Methods_Metaform.o) \
$(FULL_LIB_NAME)(Methods_MetaGrid.o) \
$(FULL_LIB_NAME)(ComputeBBox.o) \
$(FULL_LIB_NAME)(Distance_Function.o) \
$(FULL_LIB_NAME)(Bench.o) \
$(FULL_LIB_NAME)(MCubeMetaform.o) \
$(FULL_LIB_NAME)(P4D_Recencement.o) \
$(FULL_LIB_NAME)(Serialize_Metaform.o) \
$(FULL_LIB_NAME)(Methods_Ovoid.o) \
$(FULL_LIB_NAME)(Methods_Plane.o) \
$(FULL_LIB_NAME)(Methods_Quartic.o) \
$(FULL_LIB_NAME)(Methods_Sphere.o) \
$(FULL_LIB_NAME)(Methods_SuperQuadric.o) \
$(FULL_LIB_NAME)(Methods_Tore.o) \
$(FULL_LIB_NAME)(Methods_Tube.o) \
$(FULL_LIB_NAME)(Methods_HeightField.o) \
$(FULL_LIB_NAME)(Noise.o) \
$(FULL_LIB_NAME)(NumericImageSource.o) \
$(FULL_LIB_NAME)(Pigment.o) \
$(FULL_LIB_NAME)(Progressive.o) \
$(FULL_LIB_NAME)(RangeColorMap.o) \
$(FULL_LIB_NAME)(Ray.o) \
$(FULL_LIB_NAME)(Shape.o) \
$(FULL_LIB_NAME)(Skin.o) \
$(FULL_LIB_NAME)(SolidFunction.o) \
$(FULL_LIB_NAME)(Studio.o) \
$(FULL_LIB_NAME)(Surface.o) \
$(FULL_LIB_NAME)(Transform.o) \
$(FULL_LIB_NAME)(Vector.o) \
$(FULL_LIB_NAME)(ZBuffer.o) \
$(FULL_LIB_NAME)(Parser.o)\
$(FULL_LIB_NAME)(PdbFormat.o) \
$(FULL_LIB_NAME)(TemplImpl.o)\
$(FULL_LIB_NAME)(MCubesVoxel.o)

#$(FULL_LIB_NAME)(List.o) \



clean:
	rm Bin_$(SYST)/*.o Bin_$(SYST)/*.a core Bin_$(SYST)/main
backup:
	../Procs/ProcBackup $(LIB_NAME) 
beautiful:
	../Procs/ProcBeaut 


# DO NOT DELETE
