Index: Makefile
===================================================================
--- Makefile	(revision d54045b2d3ceca9ebfd5cfdcb077cd5381a2454c)
+++ Makefile	(revision d54045b2d3ceca9ebfd5cfdcb077cd5381a2454c)
@@ -0,0 +1,59 @@
+FLAGS :=		-std=c99 -O2 -gdwarf-4
+
+FLAGS_CPU :=	$(FLAGS) -I cpu -I build
+
+FLAGS_EMU :=	$(FLAGS) \
+				-fno-strict-aliasing -fno-inline -fno-omit-frame-pointer \
+				-Wall -Wextra \
+				-Wpedantic -Wconversion -Wsign-conversion -Wshadow \
+				-Wstrict-prototypes -Wmissing-declarations -Wredundant-decls \
+				-I cpu -I emu -I build
+
+FLAGS_LNK :=	$(FLAGS) -Wall -Wextra
+
+HEADERS :=		$(wildcard cpu/*.h) $(wildcard emu/*.h)
+
+all:			buchla
+
+build:
+				mkdir build
+
+build/gen:		| build
+				gcc $(FLAGS) -o build/gen cpu/m68kmake.c
+
+GEN_C :=		m68kopac.c m68kopdm.c m68kopnz.c m68kops.c
+GEN_H :=		m68kops.h
+
+GEN_CP :=		$(GEN_C:%=build/%)
+GEN_HP :=		$(GEN_H:%=build/%)
+
+GEN_O :=		$(GEN_C:.c=.o)
+GEN_OP :=		$(GEN_O:%=build/%)
+
+$(GEN_CP) $(GEN_HP): \
+				build/gen | build
+				cd cpu; ../build/gen ../build
+
+build/%.o:		build/%.c $(HEADERS)
+				gcc $(FLAGS_CPU) -c -o $@ $<
+
+CPU_C :=		m68kcpu.c m68kdasm.c
+CPU_O :=		$(CPU_C:.c=.o)
+CPU_OP :=		$(CPU_O:%=build/%)
+
+build/%.o:		cpu/%.c $(HEADERS) $(GEN_HP) | build
+				gcc $(FLAGS_CPU) -c -o $@ $<
+
+EMU_C :=		main.c
+EMU_O :=		$(EMU_C:.c=.o)
+EMU_OP :=		$(EMU_O:%=build/%)
+
+build/%.o:		emu/%.c $(HEADERS) | build
+				gcc $(FLAGS_EMU) -c -o $@ $<
+
+buchla:			$(CPU_OP) $(GEN_OP)	$(EMU_OP)
+				gcc $(FLAGS_LNK) -o buchla $(CPU_OP) $(GEN_OP) $(EMU_OP)
+
+clean:
+				rm -rf build
+				rm -f buchla
