CC = gcc
#CC=/opt/intel/compiler60/ia32/bin/icc

#CFLAGS = -g -Wall -DDEBUG
#CFLAGS = -g -O2 -Wall -pedantic 
#CFLAGS = -g -Wall -O6 -ffast-math -funroll-loops -march=i386 -mcpu=i386
#CFLAGS = -Wall -O6 -ffast-math -funroll-loops -march=i386 -mcpu=i386
#CFLAGS = -g -Wall -pedantic -std=gnu99
#CFLAGS = -Os -Wall -pedantic
#CFLAGS = -Os -Wall -fomit-frame-pointer -ffast-math -march=pentiumpro
#CFLAGS=-O3 -xiMK -tpp6 -c99 -wp_ipo -g
OBJS = objs.o misc.o id_ca.o id_vh.o id_us.o \
	wl_act1.o wl_act2.o wl_act3.o wl_agent.o wl_game.o \
	wl_inter.o wl_menu.o wl_play.o wl_state.o wl_text.o wl_main.o \
	wl_debug.o vi_comm.o sd_comm.o gfxv.o audio.o sprites.o 2xsai.o
ROBJS = wl_draw.o
SOBJS = $(OBJS) $(ROBJS) vi_svga.o
XOBJS = $(OBJS) $(ROBJS) vi_xlib.o
DOBJS = $(OBJS) $(ROBJS) vi_sdl.o

#LDLIBS = -lm -wp_ipo
LDLIBS = -lm

ifdef RELEASE
CFLAGS = -Wall -O6 -ffast-math -funroll-loops -march=i386 -mcpu=i386
else
CFLAGS = -g -Wall -DDEBUG
endif

ifndef NOPNG
OBJS += mapdraw.o
LDLIBS += -lpng
else
CFLAGS += -DNOPNG
endif

ifdef PREFIX
CFLAGS += -DPREFIX=$(PREFIX)
endif

# no sound
#OBJS += sd_null.o
# sound using OSS
OBJS += sd_oss.o fmopl.o
CFLAGS += -D_REENTRANT -I../src/inc
LDLIBS += -lpthread
# sound using SDL_mixer
#OBJS += sd_mixer.o fmopl.o
#LDLIBS += -lSDL_mixer

CFLAGS += $(shell sdl-config --cflags)

SLDLIBS = $(LDLIBS) -lvga
XLDLIBS = $(LDLIBS) -L/usr/X11R6/lib -lX11 -lXext -L../src -lsynth
DLDLIBS = $(LDLIBS) $(shell sdl-config --libs)

NASM = nasm

.SUFFIXES: .asm

all:	wolf3d-x
#all:	sdlwolf3d

$(SOBJS): version.h id_heads.h wl_def.h
$(XOBJS): version.h id_heads.h wl_def.h
$(DOBJS): version.h id_heads.h wl_def.h

.asm.o:
	$(NASM) -f elf -o $@ $<

wolf3d-svga: $(SOBJS)
	$(CC) -o wolf3d-svga $(SOBJS) $(SLDLIBS) 

wolf3d-x: $(XOBJS) ../src/libsynth.a
	$(CC) -o wolf3d-x $(XOBJS) $(XLDLIBS)

wolf3d-sdl: $(DOBJS)
	$(CC) -o wolf3d-sdl $(DOBJS) $(DLDLIBS)

links:
	ln -sf wolf3d-svga wolf3d-wl1-svga
	ln -sf wolf3d-svga wolf3d-wl6-svga
	ln -sf wolf3d-svga wolf3d-sdm-svga
	ln -sf wolf3d-svga wolf3d-sod-svga
	ln -sf wolf3d-x wolf3d-wl1-x
	ln -sf wolf3d-x wolf3d-wl6-x
	ln -sf wolf3d-x wolf3d-sdm-x
	ln -sf wolf3d-x wolf3d-sod-x
	ln -sf wolf3d-sdl wolf3d-wl1-sdl
	ln -sf wolf3d-sdl wolf3d-wl6-sdl
	ln -sf wolf3d-sdl wolf3d-sdm-sdl
	ln -sf wolf3d-sdl wolf3d-sod-sdl
	
clean:
	rm -rf wolf3d-svga wolf3d-x wolf3d-sdl *.o *.il

distclean: clean
	rm -rf *~ DEADJOE wolf3d-???-* config.wl* config.sdm config.sod

forced: distclean all
	rm -rf *.o
