#----------------------------------------------------------------------------------
#
#      Makefile for the EZ_Widget Library.
#
#----------------------------------------------------------------------------------

CC = gcc -g -DXSHM
AR = ar
RANLIB = ranlib
RM= /bin/rm -f

JPEGDIR=../jpeg
#----------------------------------------------------------------------------------
GLOB_OPTIONS = -DHAVE_DIRENT_H -DHAVE_STRING_H -DHAVE_STDLIB_H

#----------------------------------------------------------------------------------

all: shared

static:  libEZ.a

shared: libEZ.so.1.2

#----------------------------------------------------------------------------------

HDR =    EZ_Clear.h  EZ_FrontBuf.h  EZ_VectFont.h\
	 EZ_Color.h  EZ_GL.h   \
	 EZ_ColorDefs.h  EZ_LightMaterial.h EZ_Widget.h\
	 EZ_ConvertLine.h EZ_Poly.h  EZ_WidgetConfig.h\
	 EZ_ConvertPoint.h EZ_Render.h  EZ_XImageTypes.h\
	 EZ_ConvertPoly.h EZ_RenderFunc.h EZ_Sqrt.h EZ_Timer.h EZ_Input.h\
	 EZ_MemDebug.h 
#----------------------------------------------------------------------------------
# Some make cannot take long lines ...
#
SRC1 =   EZ_Buffers.c  EZ_Render.c EZ_Clear.c  EZ_Sphere.c\
	 EZ_WidgetGC.c EZ_WidgetIListBox.c EZ_WidgetScroll.c\
	 EZ_WidgetFrame.c EZ_WidgetListBox.c \
	 EZ_Color.c  EZ_String.c  EZ_WidgetGeom.c EZ_Arrow.c \
	 EZ_WidgetHash.c  EZ_Tube.c  EZ_WidgetImage.c EZ_WidgetFont.c\
	 EZ_ProjView.c  EZ_Widget.c  EZ_WidgetInit.c\
	 EZ_GLEvent.c  EZ_Widget3DCanvas.c EZ_WidgetInput.c\
	 EZ_InitGL.c  EZ_WidgetBorder.c EZ_WidgetLabel.c\
	 EZ_LightMaterial.c EZ_WidgetButtonC.c \
	 EZ_LightMaterial1.c EZ_WidgetButtonM.c EZ_WidgetMenuItems.c\
         EZ_Input.c EZ_CreateWidget.c EZ_CreateItem.c EZ_WidgetRowCol.c\
         EZ_RowCol.c EZ_Resource.c

SRC2 =   EZ_MatrixStack.c EZ_WidgetButtonN.c EZ_WidgetMisc.c\
	 EZ_MatrixTrans.c EZ_WidgetButtonR.c EZ_WidgetPopup.c\
	 EZ_MatrixVect.c  EZ_WidgetConfigure.c EZ_WidgetSlider.c\
	 EZ_Misc.c  EZ_WidgetDisp.c  EZ_World2Screen.c\
	 EZ_PolyET.c  EZ_WidgetEvent.c EZ_X11Init.c\
	 EZ_Polyhedra.c  EZ_WidgetFile.c EZ_Enable.c \
	 EZ_Fog.c EZ_DpyList.c  EZ_ClearP.c EZ_X11Render.c\
	 EZ_Text.c EZ_WidgetIText.c EZ_WidgetText.c EZ_WidgetNB.c \
	 EZ_WidgetNBPage.c EZ_Xpm.c EZ_Sqrt.c EZ_WidgetGrab.c \
	 EZ_WidgetNWLabel.c EZ_WidgetITopLevel.c EZ_WidgetArrange.c\
         EZ_WidgetPaneHandle.c EZ_GIF.c EZ_Timer.c EZ_Indicator.c\
	 EZ_WidgetSpecial.c EZ_Comm.c EZ_WidgetEmbeder.c \
         EZ_DrawSpecial.c EZ_WidgetOptInput.c EZ_Focus.c\
	 EZ_WidgetFileSelect.c  EZ_MemDebug.c EZ_Item.c \
	 EZ_ItemLabel.c EZ_ItemWidget.c \
	 EZ_Tree.c EZ_TreeDir.c EZ_WidgetRawXWin.c\
	 EZ_WidgetITree.c EZ_WidgetTree.c EZ_WidgetTearOff.c\
	 EZ_WidgetIFListBox.c  EZ_WidgetFListBox.c \
	 EZ_WidgetIWorkArea.c	EZ_WidgetWorkArea.c EZ_WorkAreaGeom.c\
	 EZ_DnD.c EZ_DnDMsg.c EZ_DnDData.c\
	 glob.c fnmatch.c tilde.c 

SRC3 =   EZ_ConvertLine.c EZ_ConvertPoint.c EZ_ConvertPoly.c  \
         EZ_ConvertPolyP.c EZ_ConvertLineP.c EZ_ConvertPointP.c

SRC4 =   EZ_BMP.c EZ_Jpeg.c

SRC = $(SRC1) $(SRC2) $(SRC3) $(SRC4)

#----------------------------------------------------------------------------------
EZ_WidgetInit.c: VERSION

#----------------------------------------------------------------------------------
 
OBJ =    $(SRC:.c=.o)

libEZ.so.1.2: $(OBJ)
	$(CC) -shared  -o libEZ.so.1.2 $(OBJ)
	- /bin/rm -f libEZ.so libEZ.so.1
	ln -s libEZ.so.1.2 libEZ.so
	ln -s libEZ.so.1.2 libEZ.so.1

#libEZ.so.1.2: $(OBJ)
#	$(CC) -shared  -Wl,-soname,libEZ.so.1 -o libEZ.so.1.2 $(OBJ)
#	- /bin/rm -f libEZ.so libEZ.so.1
#	ln -s libEZ.so.1.2 libEZ.so
#	ln -s libEZ.so.1.2 libEZ.so.1

libEZ.a: $(OBJ) 
	 $(AR) r libEZ.a $(OBJ)
	 $(RANLIB) libEZ.a

install-shared: shared
	cp libEZ.so.1.2  $(LIBDIR)
	- /bin/rm -f $(LIBDIR)/libEZ.so $(LIBDIR)/libEZ.so.1
	ln -s  $(LIBDIR)/libEZ.so.1.2 $(LIBDIR)/libEZ.so
	ln -s  $(LIBDIR)/libEZ.so.1.2 $(LIBDIR)/libEZ.so.1
	(ldconfig >/dev/null || /sbin/ldconfig) 

install-static: shared
	cp libEZ.a $(LIBDIR)
	$(RANLIB) $(LIBDIR)/libEZ.a

clean:
	$(RM) $(OBJ) 

tilde.o: tilde.c
	$(CC) $(GLOB_OPTIONS) -c tilde.c

glob.o: glob.c
	$(CC) $(GLOB_OPTIONS) -c glob.c

fnmatch.o: fnmatch.c
	$(CC) $(GLOB_OPTIONS) -c fnmatch.c

EZ_Jpeg.o: EZ_Jpeg.c EZ_Widget.h
	$(CC) -I$(JPEGDIR) -c  EZ_Jpeg.c

.c.o:
	$(CC) -c  $<
#----------------------------------------------------------------------------------



