PROGRAMS = mchat

# Basic build types
all:
	@echo "!!"
	@echo "!! Building \"mchat\" for `uname` on `arch`."
	@echo "!!"
	@make `uname` && echo "!! Build successful."

debug:
	@echo "!!"
	@echo "!! Building \"mchat\" for `uname` on `arch` in DEBUG mode."
	@echo "!!"
	@make clean
	@make `uname`_DEBUG && echo "!! Build successful."
	@touch makefile

# GNU/Linux settings
Linux:
	@\
	__MCHAT_FLAGS="-w"                      \
	__MCHAT_LIBS="-lm -lGL -lGLU -lpthread" \
	make `arch`

Linux_DEBUG:
	@\
	__MCHAT_FLAGS="-gdwarf-2 -g3 -Wall"     \
	__MCHAT_LIBS="-lm -lGL -lGLU -lpthread" \
	 make `arch`

# SunOS / Unix settings
SunOS:
	@\
	__MCHAT_FLAGS="-w -I/usr/openwin/include/ -includeieeefp.h"       \
	__MCHAT_LIBS="-L/usr/openwin/lib/ -lm -lGL -lGLU -lX11 -lpthread" \
	make `arch`

SunOS_DEBUG:
	@\
	__MCHAT_FLAGS="-gdwarf-2 -g3 -Wall -I/usr/openwin/include/"       \
	__MCHAT_LIBS="-L/usr/openwin/lib/ -lm -lGL -lGLU -lX11 -lpthread" \
	make `arch`

#  Mac/Apple/Darwin settings
Darwin:
	@\
	__MCHAT_FLAGS="-w -I/usr/X11R6/include/"                        \
	__MCHAT_LIBS="-L/usr/X11R6/lib/ -lm -lGL -lGLU -lX11 -lpthread" \
	make `arch`


Darwin_DEBUG:
	@\
	__MCHAT_FLAGS="-g3 -Wall -I/usr/X11R6/include/"                 \
	__MCHAT_LIBS="-L/usr/X11R6/lib/ -lm -lGL -lGLU -lX11 -lpthread" \
	make `arch`


# Arch types (Just in case there is somthing specific that needs to go here)
i386:   
	@__ENDIAN="-DENDIAN=LITTLE_ENDIAN" make compile
i486:   
	@__ENDIAN="-DENDIAN=LITTLE_ENDIAN" make compile
i586:   
	@__ENDIAN="-DENDIAN=LITTLE_ENDIAN" make compile
i686:   
	@__ENDIAN="-DENDIAN=LITTLE_ENDIAN" make compile
x86_64: 
	@__ENDIAN="-DENDIAN=LITTLE_ENDIAN" make compile
sun4:   
	@__ENDIAN="-DENDIAN=BIG_ENDIAN"    make compile
ppc:    
	@__ENDIAN="-DENDIAN=BIG_ENDIAN"    make compile

# Actually compile...
compile: $(PROGRAMS)

# mchat
mchat.o: mchat.c mchat.h makefile
	@echo gcc $$__MCHAT_FLAGS -c mchat.c
	@gcc $$__MCHAT_FLAGS -c mchat.c

mchat: mchat.o makefile
	@echo gcc $$__MCHAT_FLAGS -o mchat mchat.o $$__LIBS $$__MCHAT_LIBS
	@gcc $$__MCHAT_FLAGS -o mchat mchat.o $$__LIBS $$__MCHAT_LIBS

# maintenence
clean: 
	rm -f $(PROGRAMS) *.o

strip:
	rm -f $(PROGRAMS) *.o *~ \#*
