# ##############################################################
#
#                  XShipWars Master Makefile
#

PREFIX = /usr


# Rule Names:
#
RULENAME_CLIENT_AIX          = client_aix
RULENAME_CLIENT_FREEBSD      = client_freebsd
RULENAME_CLIENT_HPUX         = client_hpux
RULENAME_CLIENT_LINUX        = client_linux
RULENAME_CLIENT_SOLARIS      = client_solaris
RULENAME_CLIENT_INSTALL_UNIX = client_install_unix
RULENAME_CLIENT_CLEAN        = client_clean

RULENAME_SERVER_AIX          = server_aix
RULENAME_SERVER_FREEBSD      = server_freebsd
RULENAME_SERVER_HPUX         = server_hpux
RULENAME_SERVER_LINUX        = server_linux
RULENAME_SERVER_SOLARIS      = server_solaris
RULENAME_SERVER_INSTALL_UNIX = server_install_unix
RULENAME_SERVER_CLEAN        = server_clean

RULENAME_MONITOR_LINUX        = monitor_linux
RULENAME_MONITOR_SOLARIS      = monitor_solaris
RULENAME_MONITOR_INSTALL_UNIX = monitor_install_unix
RULENAME_MONITOR_CLEAN        = monitor_clean

RULENAME_UNVEDIT_FREEBSD      = unvedit_freebsd
RULENAME_UNVEDIT_LINUX        = unvedit_linux
RULENAME_UNVEDIT_INSTALL_UNIX = unvedit_install_unix
RULENAME_UNVEDIT_CLEAN        = unvedit_clean


# Subdirectories:
#
CLIENT_DIR = client
SERVER_DIR = server
MONITOR_DIR = monitor
UNVEDIT_DIR = unvedit


# Help Screen (aka the main menu):
#
#   Printed when the first argument is help or not given.
#
help:
	@echo "----------------------------------------------------------------------"
	@echo " "
	@echo "                         X S H I P W A R S"
	@echo " "
	@echo "               S E T U P   A N D   I N S T A L L E R"
	@echo " "
	@echo "Type \"make <operation> [options...]\", available <operation>s are:"
	@echo " "
	@echo "    For XShipWars client:"
	@echo " "
	@echo "        $(RULENAME_CLIENT_AIX)          - Build for AIX"
	@echo "        $(RULENAME_CLIENT_FREEBSD)      - Build for FreeBSD"
	@echo "        $(RULENAME_CLIENT_HPUX)         - Build for HPUX (10.20)"
	@echo "        $(RULENAME_CLIENT_LINUX)        - Build for Linux"
	@echo "        $(RULENAME_CLIENT_SOLARIS)      - Build for Solaris"
	@echo "        $(RULENAME_CLIENT_INSTALL_UNIX) - Install for standard UNIX"
	@echo "        $(RULENAME_CLIENT_CLEAN)        - Clean"
	@echo " "
	@echo "    For ShipWars server:"
	@echo " "
	@echo "        $(RULENAME_SERVER_AIX)          - Build for AIX"
	@echo "        $(RULENAME_SERVER_FREEBSD)      - Build for FreeBSD"
	@echo "        $(RULENAME_SERVER_HPUX)         - Build for HPUX (10.20)"
	@echo "        $(RULENAME_SERVER_LINUX)        - Build for Linux"
	@echo "        $(RULENAME_SERVER_SOLARIS)      - Build for Solaris"
	@echo "        $(RULENAME_SERVER_INSTALL_UNIX) - Install for standard UNIX"
	@echo "        $(RULENAME_SERVER_CLEAN)        - Clean"
	@echo " "
	@echo "    For Universe Monitor:"
	@echo " "
	@echo "        $(RULENAME_MONITOR_LINUX)        - Build for Linux"
	@echo "        $(RULENAME_MONITOR_SOLARIS)      - Build for Solaris"
	@echo "        $(RULENAME_MONITOR_INSTALL_UNIX) - Install for standard UNIX"
	@echo "        $(RULENAME_MONITOR_CLEAN)        - Clean"
	@echo " "
	@echo "    For Universe Editor:"
	@echo " "
	@echo "        $(RULENAME_UNVEDIT_FREEBSD)      - Build for FreeBSD"
	@echo "        $(RULENAME_UNVEDIT_LINUX)        - Build for Linux"
	@echo "        $(RULENAME_UNVEDIT_INSTALL_UNIX) - Install for standard UNIX"
	@echo "        $(RULENAME_UNVEDIT_CLEAN)        - Clean"
	@echo " "
	@echo "    The following [option]s may be specified after the first argument"
	@echo "    which will override the defaults:"
	@echo " "
	@echo "        \"PREFIX = /usr\""
	@echo "        \"CFLAGS = -D__USE_BSD -DUSE_XSHM -DJS_SUPPORT -DHAVE_YIFF \\"
	@echo "        -DHAVE_ESD -O2\""
	@echo "        \"LIBS = -lm -lX11 -lXpm -lXext -ljsw -lY2 -lesd -laudiofile \\"
	@echo "        -lcrypt\""
	@echo "        \"LIB_DIR = -L/usr/X11R6/lib\""
	@echo " "
	@echo "    Example:"
	@echo " "
	@echo "         make client_linux \"CFLAGS = -D__USE_BSD -DUSE_XSHM -O2\" \\"
	@echo "         \"LIBS = -lm -lX11 -lXpm -lXext\" \"LIB_DIR = -L/usr/X11R6/lib\""
	@echo " "


# Clean All:
#
clean: $(RULENAME_CLIENT_CLEAN) $(RULENAME_SERVER_CLEAN) $(RULENAME_MONITOR_CLEAN) \
       $(RULENAME_UNVEDIT_CLEAN)


# Client Makefiles:
#
$(RULENAME_CLIENT_AIX):
	@cd $(CLIENT_DIR);make -f Makefile.AIX

$(RULENAME_CLIENT_FREEBSD):
	@cd $(CLIENT_DIR);make -f Makefile.FreeBSD

$(RULENAME_CLIENT_HPUX):
	@cd $(CLIENT_DIR);make -f Makefile.HPUX.10.20

$(RULENAME_CLIENT_LINUX):
	@cd $(CLIENT_DIR);make -f Makefile.Linux

$(RULENAME_CLIENT_SOLARIS):
	@cd $(CLIENT_DIR);make -f Makefile.Solaris


$(RULENAME_CLIENT_INSTALL_UNIX):
	@cd $(CLIENT_DIR);make -f Makefile.Linux install

$(RULENAME_CLIENT_CLEAN):
	@cd $(CLIENT_DIR);make -f Makefile.Linux clean


# Server Makefiles:
#
$(RULENAME_SERVER_AIX):
	@cd $(SERVER_DIR);make -f Makefile.AIX

$(RULENAME_SERVER_FREEBSD):
	@cd $(SERVER_DIR);make -f Makefile.FreeBSD

$(RULENAME_SERVER_HPUX):
	@cd $(SERVER_DIR);make -f Makefile.HPUX.10.20

$(RULENAME_SERVER_LINUX):
	@cd $(SERVER_DIR);make -f Makefile.Linux

$(RULENAME_SERVER_SOLARIS):
	@cd $(SERVER_DIR);make -f Makefile.Solaris


$(RULENAME_SERVER_INSTALL_UNIX):
	@cd $(SERVER_DIR);make -f Makefile.Linux install

$(RULENAME_SERVER_CLEAN):
	@cd $(SERVER_DIR);make -f Makefile.Linux clean


# Monitor Makefiles:
#
$(RULENAME_MONITOR_LINUX):
	@cd $(MONITOR_DIR);make -f Makefile.Linux

$(RULENAME_MONITOR_SOLARIS):
	@cd $(MONITOR_DIR);make -f Makefile.Solaris


$(RULENAME_MONITOR_INSTALL_UNIX):
	@cd $(MONITOR_DIR);make -f Makefile.Linux install

$(RULENAME_MONITOR_CLEAN):
	@cd $(MONITOR_DIR);make -f Makefile.Linux clean


# Universe Editor Makefiles:
#
$(RULENAME_UNVEDIT_FREEBSD):
	@cd $(UNVEDIT_DIR);make -f Makefile.FreeBSD

$(RULENAME_UNVEDIT_LINUX):
	@cd $(UNVEDIT_DIR);make -f Makefile.Linux


$(RULENAME_UNVEDIT_INSTALL_UNIX):
	@cd $(UNVEDIT_DIR);make -f Makefile.Linux install

$(RULENAME_UNVEDIT_CLEAN):
	@cd $(UNVEDIT_DIR);make -f Makefile.Linux clean



#
# ##############################################################
