# This file is processed by GNU automake to generate Makefile.in
-INCLUDES = -I$(top_srcdir)/pixmaps
+INCLUDES = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/pixmaps \
+ $(GLIB_CFLAGS) \
+ $(GTK_CFLAGS)
-bin_PROGRAMS = emu8051
-# emu8051_console
+LDADD = $(GLIB_LIBS)
-emu8051_SOURCES = cpu8051.c emugtk.c memory.c memwin.c pgmwin.c regwin.c options.c file.c \
- instructions_8051.c
+bin_PROGRAMS = emu8051-cli
-#emu8051_console_SOURCES = EmuConsole.cpp cpu8051.c memory.c options.c file.c
+# instructions_8051.c must be first, because it and other files
+# (instructions_8051.h and disasm.h) are automatically generated by a perl
+# script, and other source files include them (the .h).
+common_SOURCES = \
+ instructions_8051.c \
+ options.c \
+ options.h \
+ log.c log.h \
+ app-config.c app-config.h \
+ hexfile.c \
+ hexfile.h \
+ cpu8051.c \
+ cpu8051.h \
+ memory.c \
+ memory.h \
+ common.h \
+ reg8051.h
-# These headers will be included in the distribution tarball, but will not be
-# installed by 'make install'
-noinst_HEADERS = instructions_8051.h EmuConsole.hpp Keyboard.hpp reg8051.h gtksizes.h \
- disasm.hpp
-# exceptions.hpp
+if USE_GTK
+ bin_PROGRAMS += emu8051-gtk
+
+ emu8051_gtk_SOURCES = \
+ $(common_SOURCES) \
+ emugtk.c \
+ emugtk.h \
+ memwin.c \
+ memwin.h \
+ pgmwin.c \
+ pgmwin.h \
+ regwin.c \
+ regwin.h \
+ filemenu.c \
+ filemenu.h \
+ viewmenu.c \
+ viewmenu.h \
+ helpmenu.c \
+ helpmenu.h \
+ messagebox.c \
+ messagebox.h
+
+ emu8051_gtk_LDADD = $(GTK_LIBS)
+endif
+
+emu8051_cli_SOURCES = \
+ $(common_SOURCES) \
+ emuconsole.c \
+ keyboard.c \
+ keyboard.h
+
+# These files are generated automatically by a perl script.
+instructions_8051.c instructions_8051.h disasm.h : opcode2c.pl opcodes.lst
+ ./opcode2c.pl
CLEANFILES = *~
DISTCLEANFILES = .deps/*.P
-MAINTAINERCLEANFILES = Makefile.in
-
-EXTRA_DIST = opcode2c.pl opcodes.lst instructions_8051.h
+MAINTAINERCLEANFILES = \
+ Makefile.in \
+ instructions_8051.c \
+ instructions_8051.h \
+ disasm.h
-# This rule is used to bypass the default rule which is generated by Automake, in order
-# to get rid of all the cluttered informations that are displayed by Make before
-# calling the compiler like in the following example:
-# source='programming.c' object='programming.o' libtool=no \
-# depfile='.deps/programming.Po' tmpdepfile='.deps/programming.TPo' \
-# depmode=gcc3 /bin/sh ../config/depcomp \
-# gcc -DHAVE_CONFIG_H -I. -I. -I.. -c `test -f 'main.c' || echo './'`main.c
-.c.o:
- $(COMPILE) -c $<
+EXTRA_DIST = \
+ opcode2c.pl \
+ opcodes.lst \
+ instructions_8051.h \
+ disasm.h