#*----------------------------------------------------------------------------*
#| This file is part of DEU (Doom Editing Utilities), created by the DEU team:|
#| Raphael Quinet, Brendon Wyber, Ted Vessenes and others.  See README.1ST or |
#| the "about" dialog box for full credits.                                   |
#|                                                                            |
#| DEU is an open project: if you think that you can contribute, please join  |
#| the DEU team.  You will be credited for any code (or ideas) included in    |
#| the next version of the program.                                           |
#|                                                                            |
#| If you want to make any modifications and re-distribute them on your own,  |
#| you must follow the conditions of the DEU license.  Read the file LICENSE  |
#| in this directory or README.1ST in the top directory.  If do not have a    |
#| copy of these files, you can request them from any member of the DEU team, |
#| or by mail: Raphael Quinet, Rue des Martyrs 9, B-4550 Nandrin (Belgium).   |
#|                                                                            |
#| This program comes with absolutely no warranty.  Use it at your own risks! |
#*----------------------------------------------------------------------------*

#! I should clean this up one day or another...

# gnuish Makefile

# Define your C compiler here: cc, gcc, bcc or other.
CC = gcc

# Options for your C compiler.
CFLAGS = -O2 -ansi -Wall
#CFLAGS = -g -ansi -Wall -DDEBUG_MOUSE
##CFLAGS = -g -ansi -Wall -I/usr/X11R6/include

# Graphics libraries:
# - for DOS (GRX), use g_gfxgrx.c and g_mougrx.c (GCC)
# - for DOS (BGI), use g_gfxbgi.c and g_moubgi.c (BC) or g_mougrx.c (GCC)
# - for DOS (Watcom), use g_gfxwat.c and g_mouwat.c
# - for SGI (GL), use g_gfxsgi.c and g_mousgi.c
# - for X Window, use g_gfxx11.c and g_moux11.c
# - for SVGAlib (Linux), use the files in the directory GFXVGA (not stable yet)

GFXSRCS = g_gfxgrx.c g_mougrx.c
GFXLIBS = -lpc -lgrx

#GFXSRCS = g_gfxwat.c g_mouwat.c
#GFXLIBS = ???

#GFXSRCS = g_gfxsgi.c g_mousgi.c
#GFXLIBS = -lgl -lfm

#GFXSRCS = g_gfxx11.c g_moux11.c
#GFXLIBS = -lX11
##GFXLIBS = -lX11 -lsocket -lnsl

# File prefixes:
# d_*   the core of DEU: file management functions, object structures, etc.
# w_*   Wad contents: definitions for objects included in WAD files.
# b_*   BSP builder: build Nodes, Reject and Blockmap.
# f_*   Filters for converting WAD objects to other formats (WAV, GIF, MIDI).
# g_*   Graphics: low-level functions for drawing figures or using the mouse.
# i_*   user Interface: menus, windows, dialog boxes, etc.
# m_*   Map editor: high-level functions for editing levels.

SRCS =  d_main.c \
	d_misc.c \
	d_config.c \
	d_wads.c \
	w_things.c \
	w_lindef.c \
	w_sector.c \
	w_names.c \
	w_levels.c \
	w_object.c \
	w_select.c \
	w_cutpas.c \
	w_templa.c \
	b_bsp.c \
	b_reject.c \
	b_block.c \
	b_ui.c \
	f_color.c \
	f_lzw.c \
	f_graph.c \
	f_sound.c \
	f_music.c \
	f_extins.c \
	$(GFXSRCS) \
	g_colcnv.c \
	i_dialog.c \
	i_menus.c \
	i_textur.c \
	m_object.c \
	m_info.c \
	m_edit.c \
	m_mapdrw.c \
	m_edmenu.c \
	m_edobj.c \
	m_checks.c \
	m_stats.c \
	m_print.c \
	m_align.c \
	m_random.c 

OBJS = $(SRCS:.c=.o)

LIBS = $(GFXLIBS) -lm

all: deu.exe
##all: deu

deu: $(OBJS)
	$(CC) $(OPTIONS) -o deu $(OBJS) $(LIBS)

deu.exe: deu
	del deu.exe
	strip deu
	coff2exe deu

clean:
	$(RM) deu *.o *~ *.bak

clean.dos:
	-del *.o
	-del *.obj
	-del deu
	-del deu.exe

lint:
	$(LINT) $(SRCS) $(LIBS)

check:
	@echo There are some problems left in these files:
	@grep \\\/\\\*\! *.[ch]

check.dos:
	@echo There are some problems left in these files:
	@grep /\\\*! *.h
	@grep /\\\*! *.c

depend:
	(sed '/^# DO NOT DELETE THIS LINE/q' Makefile && \
	 for i in $(SRCS) ;\
	 do /lib/cpp -D__UNIX__ -M $$i ;\
	 done | sed 's/:[       ]\.\//: /; /\/usr\/include/d; s/        / /g' \
	) > Makefile.new
	mv Makefile Makefile.bak
	mv Makefile.new Makefile

# DO NOT DELETE THIS LINE - make depend depends on it.
d_main.o: d_main.c
d_main.o: deu.h
d_main.o: d_misc.h
d_main.o: d_config.h
d_main.o: d_wads.h
d_main.o: g_gfx.h
d_main.o: i_dialog.h
d_main.o: i_textur.h
d_main.o: m_edit.h
d_main.o: w_levels.h
d_main.o: w_struct.h
d_main.o: d_main.h
d_misc.o: d_misc.c
d_misc.o: deu.h
d_misc.o: d_config.h
d_misc.o: d_wads.h
d_misc.o: g_gfx.h
d_misc.o: d_misc.h
d_config.o: d_config.c
d_config.o: deu.h
d_config.o: d_misc.h
d_config.o: d_main.h
d_config.o: d_config.h
d_wads.o: d_wads.c
d_wads.o: deu.h
d_wads.o: d_main.h
d_wads.o: d_misc.h
d_wads.o: d_config.h
d_wads.o: d_wads.h
w_things.o: w_things.c
w_things.o: deu.h
w_things.o: d_main.h
w_things.o: d_config.h
w_things.o: g_gfx.h
w_things.o: w_things.h
w_lindef.o: w_lindef.c
w_lindef.o: deu.h
w_lindef.o: w_lindef.h
w_sector.o: w_sector.c
w_sector.o: deu.h
w_sector.o: w_sector.h
w_names.o: w_names.c
w_names.o: deu.h
w_names.o: w_names.h
w_levels.o: w_levels.c
w_levels.o: deu.h
w_levels.o: d_main.h
w_levels.o: d_misc.h
w_levels.o: d_wads.h
w_levels.o: w_levels.h
w_levels.o: w_struct.h
w_levels.o: b_bsp.h
w_levels.o: b_ui.h
w_levels.o: b_reject.h
w_levels.o: b_block.h
w_levels.o: g_gfx.h
w_levels.o: g_mouse.h
w_levels.o: i_menus.h
w_object.o: w_object.c
w_object.o: deu.h
w_object.o: d_misc.h
w_object.o: d_config.h
w_object.o: w_levels.h
w_object.o: w_struct.h
w_object.o: w_select.h
w_object.o: w_levels.h
w_object.o: w_object.h
w_object.o: w_levels.h
w_select.o: w_select.c
w_select.o: deu.h
w_select.o: d_misc.h
w_select.o: g_gfx.h
w_select.o: w_levels.h
w_select.o: w_struct.h
w_select.o: w_select.h
w_select.o: w_levels.h
w_cutpas.o: w_cutpas.c
w_cutpas.o: deu.h
w_cutpas.o: d_misc.h
w_cutpas.o: d_config.h
w_cutpas.o: w_select.h
w_cutpas.o: w_levels.h
w_cutpas.o: w_struct.h
w_cutpas.o: w_object.h
w_cutpas.o: w_levels.h
w_cutpas.o: w_levels.h
w_templa.o: w_templa.c
w_templa.o: deu.h
w_templa.o: d_misc.h
w_templa.o: d_config.h
w_templa.o: w_levels.h
w_templa.o: w_struct.h
w_templa.o: w_templa.h
w_templa.o: w_levels.h
b_bsp.o: b_bsp.c
b_bsp.o: deu.h
b_bsp.o: d_misc.h
b_bsp.o: d_config.h
b_bsp.o: w_struct.h
b_bsp.o: w_levels.h
b_bsp.o: w_struct.h
b_bsp.o: w_object.h
b_bsp.o: w_levels.h
b_bsp.o: b_bsp.h
b_bsp.o: g_gfx.h
b_bsp.o: g_mouse.h
b_reject.o: b_reject.c
b_reject.o: deu.h
b_reject.o: d_misc.h
b_reject.o: d_config.h
b_reject.o: w_levels.h
b_reject.o: w_struct.h
b_reject.o: b_reject.h
b_reject.o: g_gfx.h
b_reject.o: g_mouse.h
b_block.o: b_block.c
b_block.o: deu.h
b_block.o: w_levels.h
b_block.o: w_struct.h
b_block.o: d_misc.h
b_block.o: b_block.h
b_ui.o: b_ui.c
b_ui.o: deu.h
b_ui.o: d_misc.h
b_ui.o: d_config.h
b_ui.o: g_gfx.h
b_ui.o: g_mouse.h
b_ui.o: i_dialog.h
b_ui.o: i_menus.h
b_ui.o: w_levels.h
b_ui.o: w_struct.h
b_ui.o: b_bsp.h
b_ui.o: b_ui.h
g_colcnv.o: g_colcnv.c
g_colcnv.o: deu.h
g_colcnv.o: d_main.h
g_colcnv.o: d_misc.h
g_colcnv.o: d_wads.h
g_colcnv.o: g_gfx.h
g_colcnv.o: g_colcnv.h
i_dialog.o: i_dialog.c
i_dialog.o: deu.h
i_dialog.o: d_config.h
i_dialog.o: d_misc.h
i_dialog.o: g_mouse.h
i_dialog.o: g_colcnv.h
i_dialog.o: g_gfx.h
i_dialog.o: w_names.h
i_dialog.o: w_things.h
i_dialog.o: w_lindef.h
i_dialog.o: w_sector.h
i_dialog.o: i_menus.h
i_dialog.o: i_textur.h
i_dialog.o: i_dialog.h
i_menus.o: i_menus.c
i_menus.o: deu.h
i_menus.o: d_misc.h
i_menus.o: g_gfx.h
i_menus.o: g_mouse.h
i_menus.o: i_dialog.h
i_menus.o: i_menus.h
i_textur.o: i_textur.c
i_textur.o: deu.h
i_textur.o: g_mouse.h
i_textur.o: g_gfx.h
i_textur.o: d_main.h
i_textur.o: d_misc.h
i_textur.o: d_wads.h
i_textur.o: i_menus.h
i_textur.o: i_textur.h
m_object.o: m_object.c
m_object.o: deu.h
m_object.o: d_misc.h
m_object.o: d_config.h
m_object.o: w_levels.h
m_object.o: w_struct.h
m_object.o: w_select.h
m_object.o: w_levels.h
m_object.o: w_object.h
m_object.o: w_levels.h
m_object.o: i_menus.h
m_object.o: i_textur.h
m_object.o: m_checks.h
m_object.o: w_levels.h
m_object.o: m_edmenu.h
m_object.o: w_levels.h
m_object.o: m_object.h
m_object.o: w_levels.h
m_info.o: m_info.c
m_info.o: deu.h
m_info.o: d_misc.h
m_info.o: d_config.h
m_info.o: g_gfx.h
m_info.o: w_levels.h
m_info.o: w_struct.h
m_info.o: w_names.h
m_info.o: w_things.h
m_info.o: w_lindef.h
m_info.o: w_sector.h
m_info.o: i_dialog.h
m_info.o: m_info.h
m_info.o: w_levels.h
m_edit.o: m_edit.c
m_edit.o: deu.h
m_edit.o: d_main.h
m_edit.o: d_misc.h
m_edit.o: d_config.h
m_edit.o: d_wads.h
m_edit.o: g_gfx.h
m_edit.o: g_mouse.h
m_edit.o: w_levels.h
m_edit.o: w_struct.h
m_edit.o: w_names.h
m_edit.o: w_things.h
m_edit.o: w_object.h
m_edit.o: w_levels.h
m_edit.o: w_select.h
m_edit.o: w_levels.h
m_edit.o: w_cutpas.h
m_edit.o: w_levels.h
m_edit.o: i_menus.h
m_edit.o: m_checks.h
m_edit.o: w_levels.h
m_edit.o: m_object.h
m_edit.o: w_levels.h
m_edit.o: m_edmenu.h
m_edit.o: w_levels.h
m_edit.o: m_edobj.h
m_edit.o: w_levels.h
m_edit.o: i_dialog.h
m_edit.o: m_info.h
m_edit.o: w_levels.h
m_edit.o: m_print.h
m_edit.o: m_edit.h
m_edit.o: w_levels.h
m_edmenu.o: m_edmenu.c
m_edmenu.o: deu.h
m_edmenu.o: d_main.h
m_edmenu.o: d_misc.h
m_edmenu.o: d_wads.h
m_edmenu.o: d_config.h
m_edmenu.o: g_gfx.h
m_edmenu.o: g_mouse.h
m_edmenu.o: w_levels.h
m_edmenu.o: w_struct.h
m_edmenu.o: w_names.h
m_edmenu.o: w_things.h
m_edmenu.o: w_object.h
m_edmenu.o: w_levels.h
m_edmenu.o: w_select.h
m_edmenu.o: w_levels.h
m_edmenu.o: i_dialog.h
m_edmenu.o: i_menus.h
m_edmenu.o: i_textur.h
m_edmenu.o: m_object.h
m_edmenu.o: w_levels.h
m_edmenu.o: m_checks.h
m_edmenu.o: w_levels.h
m_edmenu.o: m_align.h
m_edmenu.o: w_levels.h
m_edmenu.o: m_edmenu.h
m_edmenu.o: w_levels.h
m_edobj.o: m_edobj.c
m_edobj.o: deu.h
m_edobj.o: d_main.h
m_edobj.o: d_config.h
m_edobj.o: d_misc.h
m_edobj.o: g_gfx.h
m_edobj.o: w_struct.h
m_edobj.o: w_levels.h
m_edobj.o: w_struct.h
m_edobj.o: w_object.h
m_edobj.o: w_levels.h
m_edobj.o: w_names.h
m_edobj.o: w_things.h
m_edobj.o: i_dialog.h
m_edobj.o: m_edobj.h
m_edobj.o: w_levels.h
m_edobj.o: i_dialog.h
m_checks.o: m_checks.c
m_checks.o: deu.h
m_checks.o: d_misc.h
m_checks.o: d_wads.h
m_checks.o: d_config.h
m_checks.o: d_main.h
m_checks.o: g_gfx.h
m_checks.o: g_mouse.h
m_checks.o: w_things.h
m_checks.o: w_lindef.h
m_checks.o: w_levels.h
m_checks.o: w_struct.h
m_checks.o: w_object.h
m_checks.o: w_levels.h
m_checks.o: w_select.h
m_checks.o: w_levels.h
m_checks.o: w_templa.h
m_checks.o: w_levels.h
m_checks.o: i_dialog.h
m_checks.o: i_menus.h
m_checks.o: m_edit.h
m_checks.o: w_levels.h
m_checks.o: m_stats.h
m_checks.o: w_levels.h
m_checks.o: m_checks.h
m_checks.o: w_levels.h
m_stats.o: m_stats.c
m_stats.o: deu.h
m_stats.o: d_main.h
m_stats.o: w_things.h
m_stats.o: w_struct.h
m_stats.o: w_levels.h
m_stats.o: w_struct.h
m_stats.o: m_stats.h
m_stats.o: w_levels.h
m_print.o: m_print.c
m_print.o: deu.h
m_print.o: d_config.h
m_print.o: d_main.h
m_print.o: w_levels.h
m_print.o: w_struct.h
m_print.o: w_things.h
m_print.o: m_print.h
m_align.o: m_align.c
m_align.o: deu.h
m_align.o: d_misc.h
m_align.o: d_config.h
m_align.o: g_gfx.h
m_align.o: i_dialog.h
m_align.o: i_menus.h
m_align.o: i_textur.h
m_align.o: w_lindef.h
m_align.o: m_align.h
m_align.o: w_levels.h
m_align.o: w_struct.h
m_random.o: m_random.c
