* sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
[fw/sdcc] / sim / ucsim / main_in.mk
index e7c34297b9d629b4be5d09953c93fe0d1738c3cb..ea45c8eda03317cc070a31aeca20edd958b7d118 100644 (file)
@@ -13,35 +13,57 @@ CXXCPP              = @CXXCPP@
 RANLIB         = @RANLIB@
 INSTALL                = @INSTALL@
 
-PRJDIR         = .
+top_builddir   = @top_builddir@
+top_srcdir     = @top_srcdir@
+SIMDIR         = sim.src
+CMDDIR         = cmd.src
+GUIDIR         = gui.src
 
 DEFS            = $(subs -DHAVE_CONFIG_H,,@DEFS@)
 # FIXME: -Imcs51 must be removed!!!
-CPPFLAGS        = @CPPFLAGS@ -I$(PRJDIR)
-CFLAGS          = @CFLAGS@ -I$(PRJDIR) -Wall
-CXXFLAGS        = @CXXFLAGS@ -I$(PRJDIR) -Wall
+CPPFLAGS        = @CPPFLAGS@ -I$(top_builddir) -I$(srcdir) \
+                  -I$(top_srcdir)/$(SIMDIR) \
+                 -I$(top_srcdir)/$(CMDDIR) -I$(top_srcdir)/$(GUIDIR)
+CFLAGS          = @CFLAGS@ -I$(top_builddir) -Wall
+CXXFLAGS        = @CXXFLAGS@ -I$(top_builddir) -Wall
 M_OR_MM         = @M_OR_MM@
 
+EXEEXT         = @EXEEXT@
+
+LIB_LIST       = ucsimutil cmd sim
+UCSIM_LIBS     = -Wl,--start-group $(patsubst %,-l%,$(LIB_LIST)) -Wl,--end-group
+UCSIM_LIB_FILES        = $(patsubst %,lib%.a,$(LIB_LIST))
+
 prefix          = @prefix@
 exec_prefix     = @exec_prefix@
 bindir          = @bindir@
 libdir          = @libdir@
 datadir         = @datadir@
+datarootdir     = @datarootdir@
 includedir      = @includedir@
 mandir          = @mandir@
 man1dir         = $(mandir)/man1
 man2dir         = $(mandir)/man2
 infodir         = @infodir@
 srcdir          = @srcdir@
+VPATH           = @srcdir@
+
+OBJECTS         = pobj.o globals.o utils.o error.o app.o option.o
+SOURCES                = $(patsubst %.o,%.cc,$(OBJECTS))
+UCSIM_OBJECTS  = ucsim.o
+UCSIM_SOURCES  = $(patsubst %.o,%.cc,$(UCSIM_OBJECTS))
+ALL_SOURCES    = $(SOURCES) $(UCSIM_SOURCES)
 
-OBJECTS         = pobj.o globals.o utils.o
+enable_ucsim   = @enable_ucsim@
 
 
 # Compiling entire program or any subproject
 # ------------------------------------------
 all: checkconf libs
 
-libs: libutil.a
+libs: libucsimutil.a
+
+main_app: checkconf ucsim_app
 
 # Compiling and installing everything and runing test
 # ---------------------------------------------------
@@ -51,16 +73,17 @@ install: all installdirs
 # Deleting all the installed files
 # --------------------------------
 uninstall:
-       rm -f $(bindir)/s51
-       rm -f $(bindir)/savr
-       rm -f $(bindir)/serialview
-       rm -f $(bindir)/portmon
+       rm -f $(DESTDIR)$(bindir)/s51$(EXEEXT)
+       rm -f $(DESTDIR)$(bindir)/savr$(EXEEXT)
+       rm -f $(DESTDIR)$(bindir)/serialview$(EXEEXT)
+       rm -f $(DESTDIR)$(bindir)/portmon$(EXEEXT)
 
 
 # Performing self-test
 # --------------------
 check:
 
+test:
 
 # Performing installation test
 # ----------------------------
@@ -76,11 +99,11 @@ installdirs:
 # ---------------------
 dep: main.dep
 
-main.dep: *.cc *.h
-       $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) *.cc >main.dep
+main.dep: $(ALL_SOURCES) *.h $(srcdir)/*.h
+       $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) $(filter %.cc,$^) >main.dep
 
-include main.dep
-include clean.mk
+-include main.dep
+include $(srcdir)/clean.mk
 
 #parser.cc: parser.y
 
@@ -88,29 +111,32 @@ include clean.mk
 
 # My rules
 # --------
-
-libutil.a: $(OBJECTS)
+libucsimutil.a: $(OBJECTS)
        ar -rcu $*.a $(OBJECTS)
        $(RANLIB) $*.a
 
-.cc.o:
-       $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
 
-.y.cc:
-       rm -f $*.cc $*.h
-       $(YACC) -d $<
-       mv y.tab.c $*.cc
-       mv y.tab.h $*.h
+ifeq ($(enable_ucsim),yes)
+ucsim_app: libs ucsim
+else
+ucsim_app:
+endif
+
+ucsim: $(UCSIM_OBJECTS) $(UCSIM_LIB_FILES)
+       echo $(UCSIM_LIB_FILES)
+       $(CXX) $(CXXFLAGS) -o $@ $< -L$(top_builddir) $(UCSIM_LIBS)
 
-.l.cc:
-       rm -f $*.cc
-       $(LEX) -t $< >$*.cc
+ptt: ptt.o
+       $(CXX) $(CXXFLAGS) -o $@ $< -lpthread
+.cc.o:
+       $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
 
 
 # Remaking configuration
 # ----------------------
 checkconf:
        @if [ -f devel ]; then\
+         $(top_srcdir)/mkecho $(top_builddir) "MAIN.MK checkconf";\
          $(MAKE) -f conf.mk srcdir="$(srcdir)" freshconf;\
        fi