CC=gcc -m32
CCLINK=$(CC)
RM=rm
CFLAGS = -c -Os -Wall -fno-exceptions
DEFINES = -DUSE_ICONV -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DNDEBUG
DEFDESTDIR=/usr/local/
BINDIR=/bin
X11LIB = -L/usr/X11R6/lib
LOCAL_LIBRARIES	= -lXaw -lXt -lX11 -lpthread
SRCS = buffer.c buffer.h buflist.c cdetect.c cdetect.h cfg.h chmod.c chown.c cmd.c cmd.h cmdinput.c cmdinput.h cmdlist.c cmdlist.h config.c config.h conv.c conv.h copy.c debug.h delete.c dftype.h dfval.h dfxfunc.h dialog.c dialog.h dir.c dir.h exec.c extmacro.c extmacro.h filer.c filer.h filter.c fop.c fop.h info.c info.h keycfg.c link.c list.c list.h dfx.c match.c mem.c mem.h misc.c misc.h sort.c status.c status.h str.h string.c task.c task.h view.c view.h xutil.h 
OBJS	= dfx.o buffer.o filer.o view.o dir.o info.o status.o dialog.o task.o string.o list.o misc.o match.o fop.o mem.o cmd.o keycfg.o cmdlist.o buflist.o cmdinput.o extmacro.o exec.o sort.o copy.o link.o delete.o chmod.o chown.o filter.o conv.o cdetect.o config.o

all :: linux

linux : override CFLAGS += -march=i386

linux : dfx

linux-x64 : override CFLAGS += -march=x86-64
linux-x64 : override CC = gcc -m64

linux-x64 : dfx

freebsd : override CFLAGS += -march=i386
freebsd : override LOCAL_LIBRARIES += -liconv
freebsd : dfx

freebsd-amd64 : override CC = gcc -m64
freebsd-amd64 : override CFLAGS += -march=x86-64
freebsd-amd64 : override LOCAL_LIBRARIES += -liconv
freebsd-amd64: dfx

dfx : $(OBJS)
	if [ -e "$@" ]; then \
		$(RM) $@ ;\
	fi
	$(CCLINK) -o $@ $(X11LIB) $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES)

TAGS : $(SRCS)
	etags $(SRCS)

clean :
	$(RM) -f TAGS
	$(RM) -f $(OBJS)
	$(RM) -f dfx

rebuild : clean all;

install : dfx
	echo $(DEFDESTDIR)
	@if [ -z "$(DESTDIR)" ]; then \
		DESTDIR=$(DEFDESTDIR) ;\
	fi
	echo $(DESTDIR)$(BINDIR) $<
#	$(INSTALL) $< $(DESTDIR)$(BINDIR) $<

dfx.o : dfx.c str.h dftype.h list.h buffer.h filer.h cfg.h cmdlist.h dialog.h task.h cmd.h xutil.h misc.h mem.h dir.h info.h status.h dfxfunc.h debug.h dfval.h

filer.o : filer.c dftype.h list.h str.h buffer.h filer.h dir.h view.h info.h status.h cmdlist.h cmdinput.h dialog.h task.h cmd.h xutil.h misc.h mem.h extmacro.h dfxfunc.h debug.h dfval.h

buffer.o : buffer.c dftype.h str.h list.h buffer.h buflist.h filer.h task.h info.h status.h cmd.h dfxfunc.h mem.h xutil.h misc.h dfval.h debug.h

view.o : view.c str.h dftype.h list.h buffer.h filer.h task.h dialog.h view.h status.h mem.h cmd.h cmdinput.h dfxfunc.h xutil.h misc.h dfval.h cdetect.h conv.h

buflist.o : buflist.c config.h dftype.h list.h str.h buffer.h filer.h info.h buflist.h cmd.h mem.h dfxfunc.h xutil.h misc.h debug.h dfval.h

cmdlist.o : cmdlist.c config.h dftype.h list.h str.h buffer.h filer.h task.h info.h cmd.h cmdlist.h mem.h cfg.h extmacro.h dfxfunc.h xutil.h misc.h debug.h dfval.h

dialog.o : dialog.c dftype.h list.h str.h buffer.h filer.h status.h dialog.h task.h mem.h misc.h fop.h dfxfunc.h dfval.h xutil.h debug.h

task.o : task.c dftype.h list.h str.h buffer.h filer.h status.h dialog.h task.h mem.h misc.h fop.h dfxfunc.h dfval.h debug.h

fop.o : fop.c str.h fop.h mem.h debug.h

copy.o : copy.c dftype.h list.h str.h buffer.h filer.h status.h cmdlist.h cmdinput.h task.h cmd.h misc.h mem.h extmacro.h fop.h dfxfunc.h dfval.h debug.h

link.o : link.c dftype.h list.h str.h buffer.h filer.h status.h cmdlist.h cmdinput.h task.h cmd.h misc.h mem.h extmacro.h dfxfunc.h dfval.h debug.h

delete.o : delete.c dftype.h list.h str.h buffer.h filer.h status.h cmdlist.h cmdinput.h task.h cmd.h misc.h mem.h extmacro.h fop.h dfxfunc.h dfval.h debug.h

chmod.o : chmod.c dftype.h str.h list.h buffer.h filer.h status.h cmdlist.h cmdinput.h dialog.h task.h cmd.h mem.h extmacro.h fop.h dfxfunc.h xutil.h debug.h dfval.h

chown.o : chown.c dftype.h str.h list.h buffer.h filer.h status.h cmdlist.h cmdinput.h dialog.h task.h cmd.h misc.h mem.h extmacro.h dfxfunc.h dfval.h debug.h

cmd.o : cmd.c dftype.h list.h str.h buffer.h filer.h task.h status.h cmd.h cmdlist.h buflist.h cmdinput.h extmacro.h dfxfunc.h dfval.h misc.h mem.h debug.h

cmdinput.o : cmdinput.c str.h cmdinput.h mem.h debug.h

exec.o : exec.c str.h dftype.h list.h buffer.h cmd.h cmdinput.h mem.h debug.h

extmacro.o : extmacro.c dftype.h list.h str.h buffer.h filer.h task.h dialog.h extmacro.h cmd.h mem.h dfxfunc.h debug.h

filter.o : filter.c dftype.h list.h str.h buffer.h filer.h info.h status.h cmdlist.h cmdinput.h task.h dir.h cmd.h xutil.h misc.h mem.h extmacro.h dfxfunc.h dfval.h debug.h

sort.o : sort.c dftype.h list.h str.h buffer.h filer.h dfxfunc.h

conv.o : conv.c mem.h str.h cdetect.h conv.h debug.h

dir.o : dir.c dftype.h list.h str.h buffer.h filer.h task.h status.h mem.h dir.h dfxfunc.h dfval.h misc.h debug.h

status.o : status.c dftype.h list.h str.h buffer.h filer.h status.h mem.h xutil.h misc.h dfxfunc.h dfval.h

info.o : info.c dftype.h list.h str.h buffer.h filer.h info.h mem.h xutil.h dfxfunc.h dfval.h

keycfg.o : keycfg.c config.h dftype.h list.h str.h buffer.h cmd.h dfxfunc.h cmdinput.h mem.h cfg.h dfval.h

config.o : config.c config.h dftype.h list.h str.h mem.h cfg.h debug.h

match.o : match.c str.h

string.o : string.c str.h mem.h debug.h

cdetect.o : cdetect.c cdetect.h debug.h

list.o : list.c list.h

misc.o : misc.c config.h dftype.h list.h str.h buffer.h misc.h dfxfunc.h dfval.h

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


