ARCH=$(OSTYPE)
ifeq ($(ARCH),Linux)
ARCH=UNIX
endif

#UNIX

ifeq ($(ARCH),UNIX)

ROOTDIR=$(shell pwd)
CC=gcc
CFLAGS=-Wall -D_REENTANT -DUNIX `gtk-config --cflags` -I$(ROOTDIR) -g
LDFLAGS=`gtk-config --libs` -lpthread
LIBS=
TARGET=adb
ADIR=unix
DEPEND=$(ADIR)/_depend

else

CC=gcc
CFLAGS=-Wall -DWINDOWS -I.
LDFLAGS=
#-Wl,--subsystem,windows
LIBS=-lwsock32 -luser32 -lcomdlg32 -lcomctl32 -lgdi32
TARGET=../adb-gnu.exe
TARGET2=..\adb-gnu.exe
WINDRES=windres
ADIR=win
DEPEND=$(ADIR)\_depend

endif

AllSrc=$(wildcard *.cpp) $(wildcard *.c) $(wildcard $(ADIR)/*.cpp) $(wildcard $(ADIR)/*.c)
AllObjH1=$(AllSrc:.cpp=.o)
AllRCs=$(wildcard $(ADIR)/*.rc)
AllObj=$(AllObjH1:.c=.o) $(AllRCs:.rc=.o)

all: $(TARGET)

$(TARGET): $(AllObj)
	$(CC) -o $(TARGET) $(AllObj) $(LIBS) $(LDFLAGS)

%.o: %.rc
	$(WINDRES) $< $@

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

depend:
	$(CC) $(CFLAGS) -MM $(AllSrc) > $(DEPEND)

distclean:
ifeq ($(ARCH),WINDOWS)
	del $(AllObj)
	del *.?~
	del *.??~
	del *~
	del *.bak
	del bc\*.obj
	del bc\*.res
	del bc\adb.i??
	del bc\adb.mbt
	del bc\adb.tds
	del bc\adb.~de
	del bc\adb.mrt
else
	rm -f *~ unix/*~ win/*~
endif

clean: distclean
ifeq ($(ARCH),WINDOWS)
	del  $(TARGET2)
else
	rm -f $(TARGET)
	rm -f *.o unix/*.o
endif

include $(DEPEND)
