SYST=SunOS

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

CC_FLAGS= -g #-O3
CCC_FLAGS= +w -g #-O3

DEFINES= -DCOLOR_ABGR -DUNIX -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)/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)(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)(List.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)(Mega_Case_MCube.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)(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)(WZFacets.o) \
$(FULL_LIB_NAME)(ZBuffer.o) \
$(FULL_LIB_NAME)(Parser.o)

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


# DO NOT DELETE



