CC=gcc

CFLAGS = -O2 -m32 -DWIN32 -DNDEBUG -D_WINDOWS
CFLAGS += -D_WIN32 -DUSE_CODEC_OGG
CFLAGS += -DUSE_CODEC_MP3 
CFLAGS += -DUSE_CODEC_VORBIS -Is_win32\codecs\include -I/usr/include/directx
CFLAGS += -DASM386 -D__i386__ -Wno-trigraphs
LIBS = -lgdi32 -lwinmm -lwsock32 -ldinput -ldxguid -lmad -lvorbisfile -lvorbis -logg -Ls_win32\codecs\x86 -L/usr/lib/directx -mwindows

CFLAGS+=-DNDEBUG
LDFLAGS=-s -m32
O=.

# Source files
OBJECTS= bgmusic.o \
	chase.o \
	cl_demo.o \
	cl_input.o \
	cl_main.o \
	cl_parse.o \
	cl_tent.o \
	cmd.o \
	common.o \
	console.o \
	crc.o \
	cvar.o \
	host.o \
	host_cmd.o \
	keys.o \
	mathlib.o \
	menu.o \
	model.o \
	net_dgrm.o \
	net_loop.o \
	net_main.o \
	pr_cmds.o \
	pr_edict.o \
	pr_exec.o \
	sbar.o \
	screen.o \
	snd_codec.o \
	snd_dma.o \
	snd_mem.o \
	snd_mix.o \
	snd_mp3.o \
	snd_vorbis.o \
	snd_wave.o \
	sv_main.o \
	sv_move.o \
	sv_phys.o \
	sv_user.o \
	view.o \
	wad.o \
	world.o \
	zone.o \
	r_varsa.o \
	cd_win.o \
	in_win.o \
	net_wins.o \
	sys_win.o \
	conproc.o \
	net_win.o \
	snd_win.o \
	vid_win.o \
	r_aclip.o \
	r_alias.o \
	r_bsp.o \
	r_draw.o \
	r_edge.o \
	r_efrag.o \
	r_light.o \
	r_main.o \
	r_misc.o \
	r_part.o \
	r_sky.o \
	r_sprite.o \
	r_surf.o \
	r_vars.o \
	d_part.o \
	d_polyse.o \
	d_scan.o \
	d_sky.o \
	d_sprite.o \
	d_surf.o \
	d_vars.o \
	d_zpoint.o \
	d_varsa.o \
	draw.o \
	d_fill.o \
	d_scana.o \
	math.o \
	r_aliasa.o \
	r_drawa.o \
	r_edgea.o \
	snd_mixa.o \
	surf8.o \
	surf16.o \
	sys_wina.o \
	d_modech.o \
	net_wipx.o \
	worlda.o \
	d_parta.o \
	d_polysa.o \
	r_aclipa.o \
	net_vcr.o \
	d_edge.o \
	d_draw.o \
	d_draw16.o \
	d_spr8.o \
	d_init.o \
	winquake.res

all:    Winquake-X

Winquake-X: $(OBJECTS)
	$(CC) $(OBJECTS) $(LDFLAGS) $(LIBS) -o Winquake-X.exe

DO_AS=$(CC) -x assembler-with-cpp

$(O)/%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@
$(O)/%.o: %.S
	$(DO_AS) $(CFLAGS) -c $< -o $@
$(O)/%.o: %.s
	$(DO_AS) $(CFLAGS) -c $< -o $@

#	windres winquake.rc -O coff -o winquake.res
#
# Cleaning procedures
#
clean:
	rm -f *.o $(BUILD)

