diff options
Diffstat (limited to 'tmake/lib/unix')
-rwxr-xr-x | tmake/lib/unix/app.t | 6 | ||||
-rwxr-xr-x | tmake/lib/unix/generic.t | 268 | ||||
-rwxr-xr-x | tmake/lib/unix/lib.t | 6 | ||||
-rwxr-xr-x | tmake/lib/unix/subdirs.t | 36 |
4 files changed, 316 insertions, 0 deletions
diff --git a/tmake/lib/unix/app.t b/tmake/lib/unix/app.t new file mode 100755 index 0000000..f59c9f9 --- /dev/null +++ b/tmake/lib/unix/app.t @@ -0,0 +1,6 @@ +############################################################################# +#! +#! This is a tmake template for building Unix applications. +#! +#$ Project('TMAKE_APP_FLAG = 1'); +#$ IncludeTemplate("generic.t"); diff --git a/tmake/lib/unix/generic.t b/tmake/lib/unix/generic.t new file mode 100755 index 0000000..d9dc6ea --- /dev/null +++ b/tmake/lib/unix/generic.t @@ -0,0 +1,268 @@ +#! +#! This is a tmake template for building UNIX applications or libraries. +#! +#${ + if ( Project("TMAKE_LIB_FLAG") && !Config("staticlib") ) { + Project('CONFIG *= dll'); + } elsif ( Project("TMAKE_APP_FLAG") || Config("dll") ) { + Project('CONFIG -= staticlib'); + } + if ( Config("warn_off") ) { + Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_OFF'); + Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_OFF'); + } elsif ( Config("warn_on") ) { + Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_ON'); + Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_ON'); + } + if ( Config("debug") ) { + Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_DEBUG'); + Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_DEBUG'); + Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_DEBUG'); + } elsif ( Config("release") ) { + Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_RELEASE'); + Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_RELEASE'); + Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_RELEASE'); + } + if ( Config("qt") || Config("opengl") ) { + Project('CONFIG *= x11lib'); + if ( Config("opengl") ) { + Project('CONFIG *= x11inc'); + } + } + if ( Config("x11") ) { + Project('CONFIG *= x11lib'); + Project('CONFIG *= x11inc'); + } + if ( Config("qt") ) { + $moc_aware = 1; + AddIncludePath(Project("TMAKE_INCDIR_QT")); + if ( Config("opengl") ) { + Project("TMAKE_LIBDIR_QT") && + Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_QT'); + Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_OPENGL'); + } + if ( !((Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG")) ) { + Project("TMAKE_LIBDIR_QT") && + Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_QT'); + Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT'); + } + } + if ( Config("opengl") ) { + AddIncludePath(Project("TMAKE_INCDIR_OPENGL")); + Project("TMAKE_LIBDIR_OPENGL") && + Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_OPENGL'); + Project('TMAKE_LIBS *= $$TMAKE_LIBS_OPENGL'); + } + if ( Config("x11inc") ) { + AddIncludePath(Project("TMAKE_INCDIR_X11")); + } + if ( Config("x11lib") ) { + Project("TMAKE_LIBDIR_X11") && + Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_X11'); + Project('TMAKE_LIBS *= $$TMAKE_LIBS_X11'); + } + Project('TMAKE_LIBS += $$LIBS'); + if ( !Project("TMAKE_RUN_CC") ) { + Project('TMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src'); + } + if ( !Project("TMAKE_RUN_CC_IMP") ) { + Project('TMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<'); + } + if ( !Project("TMAKE_RUN_CXX") ) { + Project('TMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src'); + } + if ( !Project("TMAKE_RUN_CXX_IMP") ) { + Project('TMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<'); + } + Project('TMAKE_FILETAGS = HEADERS SOURCES TARGET DESTDIR $$FILETAGS'); + StdInit(); + $project{"DESTDIR"} = FixPath($project{"DESTDIR"}); + $project{"VERSION"} || ($project{"VERSION"} = "1.0"); + $project{"VER_MAJ"} = $project{"VERSION"}; + $project{"VER_MAJ"} =~ s/\.\d+$//; + $project{"VER_MIN"} = $project{"VERSION"}; + $project{"VER_MIN"} =~ s/^\d+\.//; + Project('DESTDIR_TARGET = $(TARGET)'); + if ( Project("TMAKE_APP_FLAG") ) { + if ( Config("dll") ) { + Project('TARGET = $$TARGET.so'); + Project("TMAKE_LFLAGS_SONAME") && + ($project{"TMAKE_LFLAGS_SONAME"} .= $project{"TARGET"}); + } + $project{"TARGET"} = $project{"DESTDIR"} . $project{"TARGET"}; + } elsif ( Config("staticlib") ) { + $project{"TARGET"} = $project{"DESTDIR"} . "lib" . + $project{"TARGET"} . ".a"; + Project("TMAKE_AR_CMD") || + Project('TMAKE_AR_CMD = $(AR) $(TARGET) $(OBJECTS) $(OBJMOC)'); + } else { + $project{"TARGETA"} = $project{"DESTDIR"} . "lib" . + $project{"TARGET"} . ".a"; + if ( Project("TMAKE_AR_CMD") ) { + $project{"TMAKE_AR_CMD"} =~ s/\(TARGET\)/\(TARGETA\)/g; + } else { + Project('TMAKE_AR_CMD = $(AR) $(TARGETA) $(OBJECTS) $(OBJMOC)'); + } + if ( $project{"TMAKE_HPUX_SHLIB"} ) { + $project{"TARGET_x.y"} = "lib" . $project{"TARGET"} . ".sl"; + } else { + $project{"TARGET_"} = "lib" . $project{"TARGET"} . ".so"; + $project{"TARGET_x"} = $project{"TARGET_"} . "." . + $project{"VER_MAJ"}; + $project{"TARGET_x.y"} = $project{"TARGET_"} . "." . + $project{"VERSION"}; + $project{"TMAKE_LN_SHLIB"} = "-ln -s"; + } + $project{"TARGET"} = $project{"TARGET_x.y"}; + if ( $project{"DESTDIR"} ) { + $project{"DESTDIR_TARGET"} = $project{"DESTDIR"} . + $project{"TARGET"}; + } + Project("TMAKE_LFLAGS_SONAME") && + ($project{"TMAKE_LFLAGS_SONAME"} .= $project{"TARGET_x"}); + $project{"TMAKE_LINK_SHLIB_CMD"} || + ($project{"TMAKE_LINK_SHLIB_CMD"} = + '$(LINK) $(LFLAGS) -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)'); + } + if ( Config("dll") ) { + Project('TMAKE_CFLAGS *= $$TMAKE_CFLAGS_SHLIB' ); + Project('TMAKE_CXXFLAGS *= $$TMAKE_CXXFLAGS_SHLIB' ); + Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_SHLIB $$TMAKE_LFLAGS_SONAME'); + } +#$} +#! +# Makefile for building #$ Expand("TARGET") +# Generated by tmake at #$ Now(); +# Project: #$ Expand("PROJECT"); +# Template: #$ Expand("TEMPLATE"); +############################################################################# + +####### Compiler, tools and options + +CC = #$ Expand("TMAKE_CC"); +CXX = #$ Expand("TMAKE_CXX"); +CFLAGS = #$ Expand("TMAKE_CFLAGS"); ExpandGlue("DEFINES","-D"," -D",""); +CXXFLAGS= #$ Expand("TMAKE_CXXFLAGS"); ExpandGlue("DEFINES","-D"," -D",""); +INCPATH = #$ ExpandGlue("INCPATH","-I"," -I",""); +#$ Config("staticlib") && DisableOutput(); +LINK = #$ Expand("TMAKE_LINK"); +LFLAGS = #$ Expand("TMAKE_LFLAGS"); +LIBS = #$ Expand("TMAKE_LIBS"); +#$ Config("staticlib") && EnableOutput(); +#$ Project("TMAKE_LIB_FLAG") || DisableOutput(); +AR = #$ Expand("TMAKE_AR"); +RANLIB = #$ Expand("TMAKE_RANLIB"); +#$ Project("TMAKE_LIB_FLAG") || EnableOutput(); +MOC = #$ Expand("TMAKE_MOC"); + +TAR = #$ Expand("TMAKE_TAR"); +GZIP = #$ Expand("TMAKE_GZIP"); + +####### Files + +HEADERS = #$ ExpandList("HEADERS"); +SOURCES = #$ ExpandList("SOURCES"); +OBJECTS = #$ ExpandList("OBJECTS"); +SRCMOC = #$ ExpandList("SRCMOC"); +OBJMOC = #$ ExpandList("OBJMOC"); +DIST = #$ ExpandList("DISTFILES"); +TARGET = #$ Expand("TARGET"); +#$ (Project("TMAKE_APP_FLAG") || Config("staticlib")) && DisableOutput(); +TARGETA = #$ Expand("TARGETA"); +TARGETD = #$ Expand("TARGET_x.y"); +TARGET0 = #$ Expand("TARGET_"); +TARGET1 = #$ Expand("TARGET_x"); +#$ (Project("TMAKE_APP_FLAG") || Config("staticlib")) && EnableOutput(); + +####### Implicit rules + +.SUFFIXES: .cpp .cxx .cc .C .c + +.cpp.o: + #$ Expand("TMAKE_RUN_CXX_IMP"); + +.cxx.o: + #$ Expand("TMAKE_RUN_CXX_IMP"); + +.cc.o: + #$ Expand("TMAKE_RUN_CXX_IMP"); + +.C.o: + #$ Expand("TMAKE_RUN_CXX_IMP"); + +.c.o: + #$ Expand("TMAKE_RUN_CC_IMP"); + +####### Build rules + +#$ Project("TMAKE_APP_FLAG") || DisableOutput(); +all: #$ ExpandGlue("ALL_DEPS",""," "," "); $text .= '$(TARGET)'; + +$(TARGET): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS"); + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) +#$ Project("TMAKE_APP_FLAG") || EnableOutput(); +#$ (Config("staticlib") || Project("TMAKE_APP_FLAG")) && DisableOutput(); +all: #$ ExpandGlue("ALL_DEPS",""," ",""); Expand("DESTDIR_TARGET"); + +#$ Substitute('$$DESTDIR_TARGET: $(OBJECTS) $(OBJMOC) $$TARGETDEPS'); + -rm -f $(TARGET) $(TARGET0) $(TARGET1) + #$ Expand("TMAKE_LINK_SHLIB_CMD"); + #$ ExpandGlue("TMAKE_LN_SHLIB",""," "," \$(TARGET) \$(TARGET0)"); + #$ ExpandGlue("TMAKE_LN_SHLIB",""," "," \$(TARGET) \$(TARGET1)"); + #${ + $d = Project("DESTDIR"); + if ( $d ) { + $d =~ s-([^/])$-$1/-; + if ( Project("TMAKE_HPUX_SHLIB") ) { + $text = "-rm -f $d\$(TARGET)\n\t" . + "-mv \$(TARGET) $d"; + } else { + $text = "-rm -f $d\$(TARGET)\n\t" . + "-rm -f $d\$(TARGET0)\n\t" . + "-rm -f $d\$(TARGET1)\n\t" . + "-mv \$(TARGET) \$(TARGET0) \$(TARGET1) $d"; + } + } + #$} + +staticlib: $(TARGETA) + +$(TARGETA): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS"); + -rm -f $(TARGETA) + #$ Expand("TMAKE_AR_CMD"); + #$ ExpandGlue("TMAKE_RANLIB","",""," \$(TARGETA)"); +#$ (Config("staticlib") || Project("TMAKE_APP_FLAG")) && EnableOutput(); +#$ Config("staticlib") || DisableOutput(); +all: #$ ExpandGlue("ALL_DEPS",""," "," "); $text .= '$(TARGET)'; + +staticlib: $(TARGET) + +$(TARGET): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS"); + -rm -f $(TARGET) + #$ Expand("TMAKE_AR_CMD"); + #$ ExpandGlue("TMAKE_RANLIB","",""," \$(TARGET)"); +#$ Config("staticlib") || EnableOutput(); + +moc: $(SRCMOC) + +#$ TmakeSelf(); + +dist: + #$ Substitute('$(TAR) $$PROJECT.tar $$PROJECT.pro $(SOURCES) $(HEADERS) $(DIST)'); + #$ Substitute('$(GZIP) $$PROJECT.tar'); + +clean: + -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET) +#$ (Config("staticlib") || Project("TMAKE_APP_FLAG")) && DisableOutput(); + -rm -f $(TARGET0) $(TARGET1) $(TARGETA) +#$ (Config("staticlib") || Project("TMAKE_APP_FLAG")) && EnableOutput(); + #$ ExpandGlue("TMAKE_CLEAN","-rm -f "," ",""); + -rm -f *~ core + #$ ExpandGlue("CLEAN_FILES","-rm -f "," ",""); + +####### Compile + +#$ BuildObj(Project("OBJECTS"),Project("SOURCES")); +#$ BuildMocObj(Project("OBJMOC"),Project("SRCMOC")); +#$ BuildMocSrc(Project("HEADERS")); +#$ BuildMocSrc(Project("SOURCES")); diff --git a/tmake/lib/unix/lib.t b/tmake/lib/unix/lib.t new file mode 100755 index 0000000..dd24c63 --- /dev/null +++ b/tmake/lib/unix/lib.t @@ -0,0 +1,6 @@ +############################################################################# +#! +#! This is a tmake template for building Unix libraries. +#! +#$ Project('TMAKE_LIB_FLAG = 1'); +#$ IncludeTemplate("generic.t"); diff --git a/tmake/lib/unix/subdirs.t b/tmake/lib/unix/subdirs.t new file mode 100755 index 0000000..8f20097 --- /dev/null +++ b/tmake/lib/unix/subdirs.t @@ -0,0 +1,36 @@ +############################################################################# +#! +#! This is a tmake template for creating a makefile that invokes make in +#! sub directories - for Unix. +#! +#${ + StdInit(); + Project('MAKEFILE') || Project('MAKEFILE = Makefile'); + Project('TMAKE') || Project('TMAKE = tmake'); +#$} +#! +# Makefile for building targets in sub directories. +# Generated by tmake at #$ Now(); +# Project: #$ Expand("PROJECT"); +# Template: #$ Expand("TEMPLATE"); +############################################################################# + +MAKEFILE= #$ Expand("MAKEFILE"); +TMAKE = #$ Expand("TMAKE"); + +SUBDIRS = #$ ExpandList("SUBDIRS"); + +all: $(SUBDIRS) + +$(SUBDIRS): FORCE + cd $@; $(MAKE) + +tmake: +#${ + $text = "\t" . 'for i in $(SUBDIRS); do ( cd $$i ; $(TMAKE) $$i.pro -o $(MAKEFILE); grep "TEMPLATE.*subdirs" $$i.pro 2>/dev/null >/dev/null && $(MAKE) -f $(MAKEFILE) tmake ) ; done'; +#$} + +clean: + for i in $(SUBDIRS); do ( cd $$i ; $(MAKE) clean ) ; done + +FORCE: |