LOW4_Fixup/src/obj/
# $Id $

CC = gcc
RM = rm -f
PROF = -O -ggdb
# uncomment the line below to use Cygwin
#CYGWIN = -DCYGWIN
ECHOCMD = echo -e
LIBS = -lcrypt
# Use the line below on linux
EXE = merc
# Use the line below for Cygwin
#EXE = merc.exe

# The colors Duke! The COLORS!
L_NRM     = \e[0;00m
D_RED	  = \e[0;31m
L_RED	  = \e[1;31m
D_GREEN   = \e[0;32m
L_GREEN   = \e[1;32m
D_BROWN   = \e[0;33m
L_YELLOW  = \e[1;33m
D_BLUE	  = \e[0;34m
L_BLUE	  = \e[1;34m
D_PURPLE  = \e[0;35m
L_MAGENTA = \e[1;35m
D_CYAN    = \e[0;36m
L_CYAN    = \e[1;36m
L_GREY	  = \e[0;37m
L_WHITE   = \e[1;37m

# Use these two lines to use crypt(), ie on Linux systems.
C_FLAGS = $(PROF) -Wall
L_FLAGS = $(PROF) -lcrypt

# Uncomment these two lines to use plaintext passwords.
# This is how you fix the 'crypt' linking errors!
#L_FLAGS = $(PROF)
#C_FLAGS = -Wall $(PROF) -DNOCRYPT -DQMFIXES

# Source Files
SRC_FILES := $(wildcard *.c)

# Backup Files
BCK_DIR = backup
BCK_FILES := $(BCK_DIR)/*

# Object Files
OBJ_DIR = obj
OBJ_FILES := $(patsubst %.c,$(OBJ_DIR)/%.o,$(SRC_FILES))

# Header Files
H_FILES = $(wildcard *.h)

merc: $(OBJ_FILES)
	@$(ECHOCMD) "$(L_BLUE)[- $(L_WHITE)Rebuilding MUD executable:  $(L_GREEN)merc.exe$(L_BLUE) -]$(L_NRM)"
	@$(ECHOCMD) "$(L_BLUE)[- $(L_YELLOW)**********$(L_CYAN)Compile Complete$(L_YELLOW)**********$(L_BLUE) -]$(L_NRM)"
	@$(CC) $(L_FLAGS) -o $(EXE) $(OBJ_FILES) $(LIBS)

$(OBJ_DIR)/%.o: %.c $(H_FILES)
	@$(ECHOCMD) "$(L_BLUE)-->  $(L_WHITE)Compiling file: $(L_MAGENTA)$<$(L_BLUE)  <--$(L_RED)"
	@$(CC) $(C_FLAGS) -c -o $@ $<
	@$(ECHOCMD) "$(L_BLUE)[-   $(L_YELLOW)$<$(L_NRM) compiled $(L_GREEN)OK$(L_BLUE)   -]$(L_NRM)"

clean:
	@$(ECHOCMD) "$(L_BLUE)-->  $(L_CYAN)Cleaning up for full make...  $(L_BLUE)<-- $(L_NRM)"
	@$(RM) $(OBJ_FILES) $(EXE) ../area/old_$(EXE) ../area/$(EXE) *~ *.bak *.orig *.rej
	@$(ECHOCMD) "$(L_BLUE)[-   $(L_GREEN)done$(L_NRM).    $(L_BLUE)-]$(L_NRM)"

install:
	@$(ECHOCMD) "$(L_BLUE)**** $(L_CYAN)Updating Live Executable $(L_BLUE)****$(L_NRM)"
	@$(RM) $../area/old_$(EXE)
	@mv ../area/$(EXE) ../area/old_$(EXE)
	@cp $(EXE) ../area/$(EXE)
	@$(ECHOCMD) "$(L_GREEN)**** $(L_YELLOW)Live Executable Updated $(L_GREEN)****$(L_NRM)"

cleanup:
	@$(ECHOCMD) "$(L_BLUE)-->  $(L_CYAN)Making clean for backing up  $(L_BLUE)<-- $(L_NRM)"
	@$(RM) $(OBJ_FILES) $(BCK_FILES) $(EXE) ../area/$(EXE) ../area/old_$(EXE) ../log/*.log *~ *.bak *.orig *.rej
	@$(ECHOCMD) "$(L_BLUE)[-   $(L_GREEN)Ready to make a backup now$(L_NRM).   $(L_BLUE)-]$(L_NRM)"