PRJDIR = ..
DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
-CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR)
+CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) \
+ -I$(PRJDIR)/sim.src -I$(PRJDIR)/cmd.src
CFLAGS = @CFLAGS@ -Wall
CXXFLAGS = @CXXFLAGS@ -Wall
M_OR_MM = @M_OR_MM@
infodir = @infodir@
srcdir = @srcdir@
-PKGS = serio.src portmon.src
+enable_serio = @enable_serio@
+PKGS =
+ifeq ($(enable_serio),yes)
+SERIO_PKG = serio.src
+else
+SERIO_PKG =
+endif
+CURSES_PKGS = $(SERIO_PKG)
+
+# Common code
+OBJECTS = rec.o
+SOURCES = $(patsubst %.o,%.cc,$(OBJECTS))
+
+# uCsim only
+UCSIM_OBJECTS = gui.o if.o
+UCSIM_SOURCES = $(patsubst %.o,%.cc,$(UCSIM_OBJECTS))
-LOBJECTS = event.o \
- view.o frame.o bg.o label.o \
- group.o win.o desk.o app.o
+# Tool only
+TOOL_OBJECTS =
+TOOL_SOURCES = $(patsubst %.o,%.cc,$(TOOL_OBJECTS))
+
+ALL_SOURCES = $(SOURCES) $(UCSIM_SOURCES) $(TOOL_SOURCES)
# Compiling entire program or any subproject
# ------------------------------------------
all: gui.src
-libs: guilib
-
+gui.src: checkconf gui_api
ifeq ($(curses_ok),yes)
-gui.src: checkconf guilib
-else
-gui.src: checkconf guilib
-endif
- @for pkg in $(PKGS); do\
- $(MAKE) -C $$pkg $$pkg ;\
+ @for pkg in dummy $(CURSES_PKGS); do\
+ if test -d $$pkg; then $(MAKE) -C $$pkg $$pkg; else : ; fi ;\
done
+endif
+# @for pkg in $(PKGS); do\
+# $(MAKE) -C $$pkg $$pkg ;\
+# done
-a: a.o
- $(CXX) $(LDFLAGS) $(LIBS) a.o -o $@
+gui_api: ucsim_lib tool_lib
# Compiling and installing everything and runing test
# ---------------------------------------------------
-install:
- @for pkg in $(PKGS); do\
+install: install_gui_api
+ifeq ($(curses_ok),yes)
+ @for pkg in $(CURSES_PKGS); do\
cd $$pkg && $(MAKE) install ; cd ..;\
done
+endif
+
+install_gui_api:
# Deleting all the installed files
# --------------------------------
-uninstall:
- @for pkg in $(PKGS); do\
+uninstall: uninstall_gui_api
+ifeq ($(curses_ok),yes)
+ @for pkg in $(CURSES_PKGS); do\
cd $$pkg && $(MAKE) uninstall ; cd ..;\
done
+endif
+
+uninstall_gui_api:
# Performing self-test
# --------------------
-check:
- @for pkg in $(PKGS); do\
+check: check_local
+ @for pkg in $(CURSES_PKGS); do\
cd $$pkg && $(MAKE) check ; cd ..;\
done
+check_local:
+
+test: test_local
+ @for pkg in $(CURSES_PKGS); do\
+ cd $$pkg && $(MAKE) test ; cd ..;\
+ done
+
+test_local:
+
# Performing installation test
# ----------------------------
-installcheck:
- @for pkg in $(PKGS); do\
+installcheck: installcheck_gui_api
+ @for pkg in $(CURSES_PKGS); do\
cd $$pkg && $(MAKE) installcheck ; cd ..;\
done
+installcheck_gui_api:
+
# Creating installation directories
# ---------------------------------
installdirs:
- @for pkg in $(PKGS); do\
+ @for pkg in $(CURSES_PKGS); do\
cd $$pkg && $(MAKE) installdirs ; cd ..;\
done
# ---------------------
dep: Makefile.dep
-Makefile.dep: *.cc *.h
- $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) *.cc >Makefile.dep
+Makefile.dep: $(ALL_SOURCES) *.h
+ $(CXXCPP) -MM $(CPPFLAGS) $(M_OR_MM) $(ALL_SOURCES) >Makefile.dep
include Makefile.dep
include clean.mk
-#parser.cc: parser.y
-
-#plex.cc: plex.l
# My rules
# --------
-ifeq ($(curses_ok),yes)
-guilib: libgui.a
-else
-guilib:
-endif
+ucsim_lib: $(PRJDIR)/libguiucsim.a
+
+$(PRJDIR)/libguiucsim.a: $(OBJECTS) $(UCSIM_OBJECTS)
+ ar -rcu $*.a $(OBJECTS) $(UCSIM_OBJECTS)
+ $(RANLIB) $*.a
+
+tool_lib: $(PRJDIR)/libguitool.a
-libgui.a: $(LOBJECTS)
- ar -rcu $*.a $(LOBJECTS)
+$(PRJDIR)/libguitool.a: $(OBJECTS) $(TOOL_OBJECTS)
+ ar -rcu $*.a $(OBJECTS) $(TOOL_OBJECTS)
$(RANLIB) $*.a
.cc.o: