summaryrefslogtreecommitdiffstats
path: root/tmake/lib/unix/generic.t
diff options
context:
space:
mode:
Diffstat (limited to 'tmake/lib/unix/generic.t')
-rwxr-xr-xtmake/lib/unix/generic.t268
1 files changed, 268 insertions, 0 deletions
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"));