--- /dev/null
+COMMON_OBJS=comprout.o hash.o qcc_cmdlib.o qcd_main.o
+QCC_OBJS=qccmain.o qcc_pr_comp.o qcc_pr_lex.o
+VM_OBJS=pr_exec.o pr_edict.o pr_multi.o initlib.o qcdecomp.o
+GTKGUI_OBJS=qcc_gtk.o qccguistuff.o
+WIN32GUI_OBJS=qccgui.o qccguistuff.o
+TUI_OBJS=qcctui.o
+LIB_OBJS=
+
+CC=gcc -Wall
+
+all: qcc
+
+USEGUI_CFLAGS=
+# set to -DUSEGUI when compiling the GUI
+BASE_CFLAGS=-ggdb $(USEGUI_CFLAGS)
+
+BASE_LDFLAGS=-s
+# set to "" for debugging
+
+DO_CC=$(CC) $(BASE_CFLAGS) -o $@ -c $< $(CFLAGS)
+
+lib:
+
+R_win_nocyg: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
+ $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mno-cygwin -mwindows -lcomctl32
+R_nocyg: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
+ $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mno-cygwin -lcomctl32
+R_win: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
+ $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mwindows -lcomctl32
+
+win_nocyg:
+ $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_win_nocyg
+nocyg:
+ $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_nocyg
+win:
+ $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_win
+
+R_qcc: $(QCC_OBJS) $(COMMON_OBJS) $(TUI_OBJS)
+ $(CC) $(BASE_CFLAGS) -o fteqcc.bin -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(TUI_OBJS) $(COMMON_OBJS)
+qcc:
+ $(MAKE) USEGUI_CFLAGS="" R_qcc
+
+qccmain.o: qccmain.c qcc.h
+ $(DO_CC)
+
+qcc_cmdlib.o: qcc_cmdlib.c qcc.h
+ $(DO_CC)
+
+qcc_pr_comp.o: qcc_pr_comp.c qcc.h
+ $(DO_CC)
+
+qcc_pr_lex.o: qcc_pr_lex.c qcc.h
+ $(DO_CC)
+
+comprout.o: comprout.c qcc.h
+ $(DO_CC)
+
+hash.o: hash.c qcc.h
+ $(DO_CC)
+
+qcd_main.o: qcd_main.c qcc.h
+ $(DO_CC)
+
+qccguistuff.o: qccguistuff.c qcc.h
+ $(DO_CC)
+
+qcc_gtk.o: qcc_gtk.c qcc.h
+ $(DO_CC) `pkg-config --cflags gtk+-2.0`
+
+R_gtkgui: $(QCC_OBJS) $(COMMON_OBJS) $(GTKGUI_OBJS)
+ $(CC) $(BASE_CFLAGS) $(USEGUI_CFLAGS) -o fteqccgui.bin -O3 $(GTKGUI_OBJS) $(QCC_OBJS) $(COMMON_OBJS) `pkg-config --libs gtk+-2.0`
+gtkgui:
+ $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_gtkgui
+
+clean:
+ $(RM) fteqcc.bin fteqcc.exe $(QCC_OBJS) $(COMMON_OBJS) $(VM_OBJS) $(GTKGUI_OBJS) $(WIN32GUI_OBJS) $(TUI_OBJS)
+
+qcvm.so: $(QCC_OBJS) $(VM_OBJS) $(COMMON_OBJS)
+ $(CC) $(BASE_CFLAGS) -o $@ -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(VM_OBJS) $(COMMON_OBJS) -shared
+
+
+test.o: test.c
+ $(DO_CC)
+
+testapp.bin: qcvm.so test.o
+ $(CC) $(BASE_CFLAGS) -o testapp.bin -O3 $(BASE_LDFLAGS) qcvm.so test.o
+
+regressiontest: testapp.bin
+ ./testapp.bin regression.dat -srcfile regression.src