# ====================================================================
# ===  Copyright (C) 1998-2003 Yutaka Sagiya. All rights reserved. ===
# ====================================================================
# 
#    Project              : sagcad
#    Description          : CAD/CAM
#    Source               : Makefile
# 
#    ----------------------------------
# 
#    Copyright            : (C) 1998-2003 by Yutaka Sagiya
#    email                : kappa@a6s.highway.ne.jp
#                         : yutaka@sagiya.com
#    Begin                : 2001/01/16
#    Last                 : 2003/07/27
# ====================================================================
package	= sagcad
version = 0.9.12_beta

# Common prefix for installation directories.
# NOTE: This directory must exist when you start the install.
prefix = /usr/local/sagcad

exec_prefix = $(prefix)
# Where to put the executable for the command `gcc'.
bindir = $(exec_prefix)/bin
# Where to put the Font files.
fontdir = $(prefix)/font
# Where to put the Tools files.
tooldir = $(prefix)/tools
# Where to put the Document files.
docdir = $(prefix)/doc
# Where to put the locale files.
localedir = /usr/share/locale


# =============================================================
# Compiler, tools and options
# =============================================================
CC       = gcc
PKG_CONFIG = pkg-config

# for GTK2
INCPATH  = `pkg-config --cflags gtk+-2.0`
LIBS     = `pkg-config --libs gtk+-2.0`

# for GTK1
#INCPATH  = `gtk-config --cflags`
#LIBS     = `gtk-config --libs`



# --------------------------------------
# << CFLAG >>
# --------------------------------------
# Release : 
#	CFLAGS   = -O -Wall \
#			   -DPACKAGE=\""$(package)"\" \
#			   -DVERSION=\""$(version)"\" \
#			   -DLOCALEDIR=\""$(localedir)"\" \
#			   -DFONTDIR=\""$(fontdir)"\" \
#			   -DDOCDIR=\""$(docdir)"\" \
#			   -DTOOLDIR=\""$(tooldir)"\"
#

# Debug : 
	CFLAGS   = -g -Wall \
			   -DDEBUG \
			   -DPACKAGE=\""$(package)"\" \
			   -DVERSION=\""$(version)"\" \
			   -DLOCALEDIR=\""$(localedir)"\" \
			   -DFONTDIR=\""$(fontdir)"\" \
			   -DDOCDIR=\""$(docdir)"\" \
			   -DTOOLDIR=\""$(tooldir)"\"


# --------------------------------------
# << LFLAGS >>
# --------------------------------------
	LFLAGS   = -lm
#	LFLAGS   = -lm -lX11 -lgdk_imlib -lXpm
#	LFLAGS   = -lm -lX11 -lgdk_imlib -lXpm -ljpeg -lpng -ltiff -lz -lgif


# =============================================================
# Files
# =============================================================
TARGET    = sagcad
INPDIR	= ./src/
OUTDIR	= ./src/
OBJECTS   = \
			$(OUTDIR)culcfunc.o \
			$(OUTDIR)List_cad.o \
			$(OUTDIR)List_Dimension.o \
			$(OUTDIR)List_PolyLine.o \
			$(OUTDIR)List_Block.o \
			$(OUTDIR)List_Undo.o \
			$(OUTDIR)List_Select.o \
			$(OUTDIR)List_font.o \
			$(OUTDIR)List_insert.o \
			$(OUTDIR)List_Ellipse.o \
			$(OUTDIR)List_Vertex.o \
			$(OUTDIR)List_cam.o \
			$(OUTDIR)etc.o \
			$(OUTDIR)Draw.o \
			$(OUTDIR)sagcad.o \
			$(OUTDIR)toolbar.o \
			$(OUTDIR)DrawArea.o \
			$(OUTDIR)LineStyleBox.o \
			$(OUTDIR)global.o \
			$(OUTDIR)MsgBox.o \
			$(OUTDIR)InputBox.o \
			$(OUTDIR)Line_dlg.o \
			$(OUTDIR)Mouse.o \
			$(OUTDIR)Select.o \
			$(OUTDIR)font.o \
			$(OUTDIR)Dimension.o \
			$(OUTDIR)Assistance.o \
			$(OUTDIR)Command.o \
			$(OUTDIR)CopyFunc.o \
			$(OUTDIR)TrimFunc.o \
			$(OUTDIR)DrawMode.o \
			$(OUTDIR)sgy.o \
			$(OUTDIR)iges.o \
			$(OUTDIR)DXF_read.o \
			$(OUTDIR)DXF_write.o \
			$(OUTDIR)NC_read.o \
			$(OUTDIR)MemoryLeak.o \
			$(OUTDIR)CopyDlg.o \
			$(OUTDIR)TurnDlg.o \
			$(OUTDIR)ScalingDlg.o \
			$(OUTDIR)GridCopyDlg.o \
			$(OUTDIR)SnapDlg.o \
			$(OUTDIR)TextEditDlg.o \
			$(OUTDIR)plcDlg.o \
			$(OUTDIR)EnvSetDlg.o \
			$(OUTDIR)LayerSet.o \
			$(OUTDIR)spline.o \
			$(OUTDIR)StringCulc.o \
			$(OUTDIR)CulcInputDlg.o \
			$(OUTDIR)about.o \
			$(OUTDIR)PostScript.o \
			$(OUTDIR)PrintSetDlg.o \
			$(OUTDIR)CamSetDlg.o \
			$(OUTDIR)EllipseSetDlg.o \
			$(OUTDIR)Ellipse.o \
			$(OUTDIR)CamProfile.o \
			$(OUTDIR)B_spline.o \
			$(OUTDIR)OutsideProcess.o



# =============================================================
# Build rules
# =============================================================
PROGS =	$(TARGET) \
		${HOME}/.sagcad/tools/ellipse_make.ops \
		./po/ja.gmo \
		./po/de.gmo


all: $(PROGS)

$(TARGET):	$(OBJECTS)
	$(CC) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

${HOME}/.sagcad/tools/ellipse_make.ops : 
	mkdir -p ${HOME}/.sagcad/tools
	cp -r ./tools/* ${HOME}/.sagcad/tools/

./po/ja.gmo: ./po/ja.po
	msgfmt -o $@ $<

./po/de.gmo: ./po/de.po
	msgfmt -o $@ $<





# =============================================================
# Implicit rules
# =============================================================
#.SUFFIXES: .C .c

#.c.o:
#	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

#.C.o:
#	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<



$(OUTDIR)sagcad.o : $(INPDIR)sagcad.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)global.o : $(INPDIR)global.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)MemoryLeak.o : $(INPDIR)MemoryLeak.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)DrawArea.o : $(INPDIR)DrawArea.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)culcfunc.o : $(INPDIR)culcfunc.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)toolbar.o : $(INPDIR)toolbar.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_cad.o : $(INPDIR)List_cad.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Dimension.o : $(INPDIR)List_Dimension.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_PolyLine.o : $(INPDIR)List_PolyLine.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_insert.o : $(INPDIR)List_insert.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Ellipse.o : $(INPDIR)List_Ellipse.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Vertex.o : $(INPDIR)List_Vertex.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Block.o : $(INPDIR)List_Block.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Undo.o : $(INPDIR)List_Undo.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_Select.o : $(INPDIR)List_Select.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_cam.o : $(INPDIR)List_cam.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Draw.o : $(INPDIR)Draw.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)LineStyleBox.o : $(INPDIR)LineStyleBox.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Select.o : $(INPDIR)Select.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Command.o : $(INPDIR)Command.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)MsgBox.o : $(INPDIR)MsgBox.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)InputBox.o : $(INPDIR)InputBox.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)DrawMode.o : $(INPDIR)DrawMode.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)TrimFunc.o : $(INPDIR)TrimFunc.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)CopyFunc.o : $(INPDIR)CopyFunc.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Line_dlg.o : $(INPDIR)Line_dlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)List_font.o : $(INPDIR)List_font.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)font.o : $(INPDIR)font.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Dimension.o : $(INPDIR)Dimension.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)DimensionEditDlg.o : $(INPDIR)DimensionEditDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)etc.o : $(INPDIR)etc.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)spline.o : $(INPDIR)spline.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)B_spline.o : $(INPDIR)B_spline.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Mouse.o : $(INPDIR)Mouse.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Assistance.o : $(INPDIR)Assistance.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)sgy.o : $(INPDIR)sgy.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)iges.o : $(INPDIR)iges.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)DXF_read.o : $(INPDIR)DXF_read.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)DXF_write.o : $(INPDIR)DXF_write.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)NC_read.o : $(INPDIR)NC_read.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)CopyDlg.o : $(INPDIR)CopyDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)TurnDlg.o : $(INPDIR)TurnDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)ScalingDlg.o : $(INPDIR)ScalingDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)GridCopyDlg.o : $(INPDIR)GridCopyDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)SnapDlg.o : $(INPDIR)SnapDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)TextEditDlg.o : $(INPDIR)TextEditDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)plcDlg.o : $(INPDIR)plcDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)StringCulc.o : $(INPDIR)StringCulc.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)CulcInputDlg.o : $(INPDIR)CulcInputDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)LayerSet.o : $(INPDIR)LayerSet.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)about.o : $(INPDIR)about.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)EnvSetDlg.o : $(INPDIR)EnvSetDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)PostScript.o : $(INPDIR)PostScript.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)PrintSetDlg.o : $(INPDIR)PrintSetDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)CamSetDlg.o : $(INPDIR)CamSetDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)CamProfile.o : $(INPDIR)CamProfile.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)EllipseSetDlg.o : $(INPDIR)EllipseSetDlg.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)Ellipse.o : $(INPDIR)Ellipse.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

$(OUTDIR)OutsideProcess.o : $(INPDIR)OutsideProcess.c
	$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<







# =============================================================
# Other rules
# =============================================================
install_mo :
	mkdir -p ${localedir}/ja/LC_MESSAGES
	mkdir -p ${localedir}/de/LC_MESSAGES

	cp ./po/ja.gmo ${localedir}/ja/LC_MESSAGES/sagcad.mo
	cp ./po/de.gmo ${localedir}/de/LC_MESSAGES/sagcad.mo



install :

	mkdir -p ${bindir}
	mkdir -p ${fontdir}
	mkdir -p ${tooldir}
	mkdir -p ${docdir}
	cp -i ./sagcad ${bindir}
	cp -r ./font/* ${fontdir}
	cp -r ./tools/* ${tooldir}
	chmod 777 ${tooldir}
	chmod 777 ${tooldir}/ruby
	cp -r ./doc/* ${docdir}
	(cd /usr/local/bin; ln -s ${bindir}/sagcad)

	mkdir -p ${localedir}/ja/LC_MESSAGES
	mkdir -p ${localedir}/de/LC_MESSAGES

	cp ./po/ja.gmo ${localedir}/ja/LC_MESSAGES/sagcad.mo
	cp ./po/de.gmo ${localedir}/de/LC_MESSAGES/sagcad.mo


uninstall :
	-rm -f /usr/local/bin/$(TARGET)
	-rm -f ${bindir}/$(TARGET)
	-rm -rf ${fontdir}
	-rm -rf ${tooldir}
	-rm -rf ${docdir}
	-rm ${localedir}/ja/LC_MESSAGES/sagcad.mo
	-rm ${localedir}/de/LC_MESSAGES/sagcad.mo


clean: 
	-rm -f $(OBJECTS) $(TARGET)
	-rm -f ./po/sagcad.mo
	-rm -f ./po/*.gmo
	-rm -f log
	-rm -f *.ps
	-rm -f *.eps
	-rm -f MemoryDebugLog
	-rm -f *~ core
	-rm -f ./tools/ruby/sag_out.txt
	-rm -f ./tools/ruby/sag_inp.txt
#	-rm -rf ${HOME}/.sagcadrc

touch:
	touch $(INPDIR)*.c

each : 
	$(CC) -c $(CFLAGS) $(INCPATH) -o $(OUTDIR)EllipseSetDlg.o $(INPDIR)EllipseSetDlg.c



# ====================================================================
# ===  Copyright (C) 1998-2002 Yutaka Sagiya. All rights reserved. ===
# ====================================================================
#    Project              : sagcad
#    Description          : CAD/CAM
#    Source               : Makefile
# ====================================================================
