#
# Cxplorer build Makefile .
#
# Author Konta (hatakeda@mbm.sphere.ne.jp)
# Create 1999/08/20 first version.
# Modify 2000/06/22 .o Make -> module.
# http://www1.sphere.ne.jp/hatakeda/
#

INSTDIR = /usr/local/cxplorer
# CXPCONFDIR = $(INSTDIR)/etc
CXPCONFDIR = /etc
CXPCONF    = $(CXPCONFDIR)/cxp.conf

CC	= gcc -g -D_REENTRANT -D_THREAD_SAFE

ECHO	= echo 
RM	= rm -f

CXPFLAG		= `gtk-config --cflags` -DCXP_BASE_PATHINFO="\"$(CXPCONF)\""
#CXPINCLUDE	= -I/usr/pkg/include -Iinclude
CXPINCLUDE	= -Iinclude
PTHLIB		= -lpthread
#OTHIMGLIB	= -R/usr/pkg/lib -R/usr/X11R6/lib -ljpeg -ltiff -lpng
OTHIMGLIB	= -ljpeg -ltiff -lpng
CXPLIBRARY	= `gtk-config --libs` $(OTHIMGLIB)

COMMON_SRCS =	src/common/common_aplication.c src/common/common_cxpinfo.c \
		src/common/common_function.c   src/common/common_geometry.c \
		src/common/common_getaddr.c    src/common/common_getapp.c \
		src/common/common_getbase.c    src/common/common_getdir.c \
		src/common/common_getfont.c    src/common/common_getimage.c \
		src/common/common_getnet.c     src/common/common_getpath.c \
		src/common/common_getscd.c     src/common/common_getsize.c \
		src/common/common_getstyle.c   src/common/common_getsysinfo.c \
		src/common/common_io.c         src/common/common_message1.c \
		src/common/common_message2.c   src/common/common_permission.c \
		src/common/common_getdevice.c  src/common/common_sub.c \
		src/common/common_manager.c    src/common/common_sizesetting.c


IMAGE_SRCS =	src/image/common_image_bmp.c  src/image/common_image_check.c \
		src/image/common_image_gif.c  src/image/common_image_jpeg.c \
		src/image/common_image_png.c  src/image/common_image_psd.c \
		src/image/common_image_scan.c src/image/common_image_tiff.c

SOCKET_SRCS =	src/socket/cxpsocket_client.c src/socket/cxpsocket_server.c


CXPLORER_SRCS = src/cxplorer/cxplorer.c          src/cxplorer/cxplorer_address.c \
		src/cxplorer/cxplorer_dialog.c   src/cxplorer/cxplorer_directory.c \
		src/cxplorer/cxplorer_editfunc.c src/cxplorer/cxplorer_filefunc.c \
		src/cxplorer/cxplorer_fileview.c src/cxplorer/cxplorer_getconfig.c \
		src/cxplorer/cxplorer_helpfunc.c src/cxplorer/cxplorer_list.c \
		src/cxplorer/cxplorer_menu.c     src/cxplorer/cxplorer_movefunc.c \
		src/cxplorer/cxplorer_pixmap.c   src/cxplorer/cxplorer_propaty.c \
		src/cxplorer/cxplorer_toolfunc.c src/cxplorer/cxplorer_topcmd.c \
		src/cxplorer/cxplorer_viewfunc.c src/cxplorer/cxplorer_version.c \
		src/cxplorer/cxplorer_filesort.c src/cxplorer/cxplorer_style.c \
		src/cxplorer/cxplorer_setting.c  src/cxplorer/cxplorer_settfunc.c \
		src/cxplorer/cxplorer_appwin.c   src/cxplorer/cxplorer_funcwin.c

CXPMAIL_SRCS =	src/cxpmail/cxpmail.c             src/cxpmail/cxpmail_addbox.c \
		src/cxpmail/cxpmail_addrsel.c     src/cxpmail/cxpmail_base.c \
		src/cxpmail/cxpmail_baseset.c     src/cxpmail/cxpmail_func.c \
		src/cxpmail/cxpmail_furibase.c    src/cxpmail/cxpmail_furidlg.c \
		src/cxpmail/cxpmail_getfuriwake.c src/cxpmail/cxpmail_help.c \
		src/cxpmail/cxpmail_io.c          src/cxpmail/cxpmail_make.c \
		src/cxpmail/cxpmail_menu.c        src/cxpmail/cxpmail_misc.c \
		src/cxpmail/cxpmail_modbox.c      src/cxpmail/cxpmail_movemail.c \
		src/cxpmail/cxpmail_network.c     src/cxpmail/cxpmail_pop3.c \
		src/cxpmail/cxpmail_sendrecv.c    src/cxpmail/cxpmail_show.c \
		src/cxpmail/cxpmail_smtp.c        src/cxpmail/cxpmail_sort.c \
		src/cxpmail/cxpmail_text.c        src/cxpmail/cxpmail_title.c \
		src/cxpmail/cxpmail_tool.c        src/cxpmail/cxpmail_userset.c \
		src/cxpmail/cxpmail_version.c     src/cxpmail/cxpmail_view.c \
		src/cxpmail/cxpmail_working.c     src/cxpmail/cxpmail_atenaInfo.c

CXPNOTE_SRCS =	src/cxpnote/cxpnote.c            src/cxpnote/cxpnote_color.c \
		src/cxpnote/cxpnote_dialog.c     src/cxpnote/cxpnote_file.c \
		src/cxpnote/cxpnote_fontlist.c   src/cxpnote/cxpnote_func.c \
		src/cxpnote/cxpnote_help.c       src/cxpnote/cxpnote_menu.c \
		src/cxpnote/cxpnote_text.c       src/cxpnote/cxpnote_title.c \
		src/cxpnote/cxpnote_topcmd.c     src/cxpnote/cxpnote_viewfunc.c

CXPAPP_SRCS =	src/cxpapp/cxpapp.c              src/cxpapp/cxpapp_list.c \
		src/cxpapp/cxpapp_view.c         src/cxpapp/cxpapp_dialog.c

CXPPANEL_SRCS =	src/cxppanel/cxppanel.c          src/cxppanel/cxppanel_cmd.c \
		src/cxppanel/cxppanel_mask.c     src/cxppanel/cxppanel_getcfg.c

CXPSYSIN_SRCS =	src/cxpsysinfo/cxpsysinfo.c      src/cxpsysinfo/cxpsysinfo_list.c

CXPBG_SRCS =	src/cxpbg/cxpbg.c                src/cxpbg/cxpbg_list.c

CXPADDR_SRCS =	src/cxpaddr/cxpaddr.c            src/cxpaddr/cxpaddr_list.c \
		src/cxpaddr/cxpaddr_menu.c       src/cxpaddr/cxpaddr_func.c \
		src/cxpaddr/cxpaddr_dialog.c     src/cxpaddr/cxpaddr_dataview.c

CXPCALEN_SRCS = src/cxpcalen/cxpcalen.c		 src/cxpcalen/cxpcalen_alarmwin.c \
		src/cxpcalen/cxpcalen_base.c	 src/cxpcalen/cxpcalen_func.c \
		src/cxpcalen/cxpcalen_getlabel.c src/cxpcalen/cxpcalen_help.c \
		src/cxpcalen/cxpcalen_kindfunc.c src/cxpcalen/cxpcalen_kindselwin.c \
		src/cxpcalen/cxpcalen_kindwin.c	 src/cxpcalen/cxpcalen_levelwin.c \
		src/cxpcalen/cxpcalen_list.c	 src/cxpcalen/cxpcalen_pixmap.c \
		src/cxpcalen/cxpcalen_scheditwin.c src/cxpcalen/cxpcalen_schfunc.c \
		src/cxpcalen/cxpcalen_select.c	 src/cxpcalen/cxpcalen_todofunc.c \
		src/cxpcalen/cxpcalen_todowin.c	 src/cxpcalen/cxpcalen_version.c \
		src/cxpcalen/cxpcalen_view.c

CXPCALC_SRCS =	src/cxpcalc/cxpcalc.c            src/cxpcalc/cxpcalc_btn.c \
		src/cxpcalc/cxpcalc_view.c

CXPIMAGE_SRCS =	src/cxpimage/cxpimage.c          src/cxpimage/cxpimage_base.c \
		src/cxpimage/cxpimage_readpath.c src/cxpimage/cxpimage_imageview.c \
		src/cxpimage/cxpimage_stop.c     src/cxpimage/cxpimage_version.c \
		src/cxpimage/cxpimage_help.c      src/cxpimage/cxpimage_filelistview.c

CXPBACKUP_SRCS = \
		src/cxpbackup/cxpbackup.c            src/cxpbackup/cxpbackup_base.c \
		src/cxpbackup/cxpbackup_directory.c  src/cxpbackup/cxpbackup_error.c \
		src/cxpbackup/cxpbackup_function.c   src/cxpbackup/cxpbackup_help.c \
		src/cxpbackup/cxpbackup_makepixmap.c src/cxpbackup/cxpbackup_message.c \
		src/cxpbackup/cxpbackup_save.c       src/cxpbackup/cxpbackup_show.c \
		src/cxpbackup/cxpbackup_signal.c     src/cxpbackup/cxpbackup_version.c

CXPRESTORE_SRCS = \
		src/cxprestore/cxprestore.c           src/cxprestore/cxprestore_base.c \
		src/cxprestore/cxprestore_directory.c src/cxprestore/cxprestore_error.c \
		src/cxprestore/cxprestore_function.c  src/cxprestore/cxprestore_header.c \
		src/cxprestore/cxprestore_help.c      src/cxprestore/cxprestore_message.c \
		src/cxprestore/cxprestore_makepixmap.c src/cxprestore/cxprestore_rest.c \
		src/cxprestore/cxprestore_signal.c    src/cxprestore/cxprestore_version.c

CXPDEVICE_SRCS = \
		src/cxpdevice/cxpdevice.c         src/cxpdevice/cxpdevice_base.c \
		src/cxpdevice/cxpdevice_devsel.c  src/cxpdevice/cxpdevice_func.c \
		src/cxpdevice/cxpdevice_help.c    src/cxpdevice/cxpdevice_list.c \
		src/cxpdevice/cxpdevice_pixmap.c  src/cxpdevice/cxpdevice_set.c \
		src/cxpdevice/cxpdevice_version.c src/cxpdevice/cxpdevice_view.c

CXPMESSAGE_SRCS = \
		src/cxpmessage/cxpmessage.c	src/cxpmessage/cxpmessage_base.c \
		src/cxpmessage/cxpmessage_func.c

CXPMANAGER_SRCS = \
		src/cxpmanager/cxpmanager.c src/cxpmanager/cxpmanager_calensch.c \
		src/cxpmanager/cxpmanager_device.c src/cxpmanager/cxpmanager_sub.c \
		src/cxpmanager/cxpmanager_version.c

CXPMANAGERDEV_SRCS = \
		src/cxpmanager_dev/cxpmanager_dev.c \
		src/cxpmanager_dev/cxpmanager_device.c


COMMON_OBJS	= $(COMMON_SRCS:.c=.o)
IMAGE_OBJS	= $(IMAGE_SRCS:.c=.o)
SOCKET_OBJS	= $(SOCKET_SRCS:.c=.o)
CXPLORER_OBJS	= $(CXPLORER_SRCS:.c=.o)
CXPMAIL_OBJS	= $(CXPMAIL_SRCS:.c=.o)
CXPNOTE_OBJS	= $(CXPNOTE_SRCS:.c=.o)
CXPAPP_OBJS	= $(CXPAPP_SRCS:.c=.o)
CXPPANEL_OBJS	= $(CXPPANEL_SRCS:.c=.o)
CXPSYSIN_OBJS	= $(CXPSYSIN_SRCS:.c=.o)
CXPBG_OBJS	= $(CXPBG_SRCS:.c=.o)
CXPADDR_OBJS	= $(CXPADDR_SRCS:.c=.o)
CXPCALEN_OBJS	= $(CXPCALEN_SRCS:.c=.o)
CXPCALC_OBJS	= $(CXPCALC_SRCS:.c=.o)
CXPIMAGE_OBJS	= $(CXPIMAGE_SRCS:.c=.o)
CXPBACKUP_OBJS	= $(CXPBACKUP_SRCS:.c=.o)
CXPRESTORE_OBJS	= $(CXPRESTORE_SRCS:.c=.o)
CXPDEVICE_OBJS	= $(CXPDEVICE_SRCS:.c=.o)
CXPMESSAGE_OBJS	= $(CXPMESSAGE_SRCS:.c=.o)
CXPMANAGER_OBJS	= $(CXPMANAGER_SRCS:.c=.o)
CXPMANAGERDEV_OBJS = $(CXPMANAGERDEV_SRCS:.c=.o)

CXP_PROGRAMS	= cxplorer cxpmail cxpnote cxpapp cxppanel \
		  cxpsysinfo cxpbg cxpimage cxpaddr \
		  cxpcalen cxpcalc cxpbackup cxprestore \
		  cxpdevice cxpmessage cxpmanager cxpmanager_dev

all:		$(CXP_PROGRAMS)

cxplorer:	$(CXPLORER_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPLORER_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpmail:	$(CXPMAIL_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPMAIL_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpnote:	$(CXPNOTE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPNOTE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpapp:		$(CXPAPP_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPAPP_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxppanel:	$(CXPPANEL_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPPANEL_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpsysinfo:	$(CXPSYSIN_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPSYSIN_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpbg:		$(CXPBG_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPBG_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpaddr:	$(CXPADDR_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPADDR_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpcalen:	$(CXPCALEN_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPCALEN_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpcalc:	$(CXPCALC_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPCALC_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpimage:	$(CXPIMAGE_OBJS) $(COMMON_OBJS) $(IMAGE_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPIMAGE_OBJS) $(COMMON_OBJS) $(IMAGE_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpbackup:	$(CXPBACKUP_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPBACKUP_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxprestore:	$(CXPRESTORE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPRESTORE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpdevice:	$(CXPDEVICE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPDEVICE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpmessage:	$(CXPMESSAGE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPMESSAGE_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

cxpmanager:	$(CXPMANAGER_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(PTHLIB)
		 $(CC) -o $@ $(CXPMANAGER_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(PTHLIB) $(CXPLIBRARY)

cxpmanager_dev:	$(CXPMANAGERDEV_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS)
		 $(CC) -o $@ $(CXPMANAGERDEV_OBJS) $(COMMON_OBJS) $(SOCKET_OBJS) $(CXPLIBRARY)

clean:
		$(RM) $(CXP_PROGRAMS) \
		      $(CXPLORER_OBJS) \
		      $(CXPMAIL_OBJS) \
		      $(CXPNOTE_OBJS) \
		      $(CXPAPP_OBJS) \
		      $(CXPPANEL_OBJS) \
		      $(CXPSYSIN_OBJS) \
		      $(CXPIMAGE_OBJS) \
		      $(CXPBG_OBJS) \
		      $(CXPADDR_OBJS) \
		      $(CXPCALEN_OBJS) \
		      $(CXPCALC_OBJS) \
		      $(CXPBACKUP_OBJS) \
		      $(CXPRESTORE_OBJS) \
		      $(CXPDEVICE_OBJS) \
		      $(CXPMESSAGE_OBJS) \
		      $(CXPMANAGER_OBJS) \
		      $(CXPMANAGERDEV_OBJS) \
		      $(COMMON_OBJS) \
		      $(IMAGE_OBJS) \
		      $(SOCKET_OBJS)

install:
		if [ ! -d $(CXPCONFDIR) ]; then mkdir -p $(CXPCONFDIR); fi
		$(ECHO) "# Cxp base directory Setting file" > $(CXPCONF)
		$(ECHO) "# Create : konta " >> $(CXPCONF)
		$(ECHO) "#"       >> $(CXPCONF)
		$(ECHO) ""         >> $(CXPCONF)
		$(ECHO) $(INSTDIR) >> $(CXPCONF)
		./install.sh -base $(INSTDIR)



$(COMMON_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(IMAGE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(SOCKET_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPLORER_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPMAIL_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPNOTE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPAPP_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPPANEL_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPSYSIN_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPBG_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPIMAGE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPADDR_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPCALEN_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPCALC_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPBACKUP_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPRESTORE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPDEVICE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPMESSAGE_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPMANAGER_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

$(CXPMANAGERDEV_OBJS): $(@:.o=.c)
	$(CC) -c $(CXPFLAG) $(CXPINCLUDE) -o $@ $*.c

