Orb/Doxygen/tmake/lib/win32-mingw/generic.t
changeset 0 42188c7ea2d9
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 #!
       
     2 #! This is a tmake template for building Win32 applications or libraries.
       
     3 #!
       
     4 #${
       
     5     if ( Config("qt") ) {
       
     6 	if ( !(Project("DEFINES") =~ /QT_NODLL/) &&
       
     7 	     ((Project("DEFINES") =~ /QT_(?:MAKE)?DLL/) ||
       
     8 	      ($ENV{"QT_DLL"} && !$ENV{"QT_NODLL"})) ) {
       
     9 	    Project('TMAKE_QT_DLL = 1');
       
    10 	    if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) {
       
    11 		Project('CONFIG += dll');
       
    12 	    }
       
    13 	}
       
    14     }
       
    15     if ( Config("dll") || Project("TMAKE_APP_FLAG") ) {
       
    16 	Project('CONFIG -= staticlib');
       
    17 	Project('TMAKE_APP_OR_DLL = 1');
       
    18     } else {
       
    19 	Project('CONFIG += staticlib');
       
    20     }
       
    21     if ( Config("warn_off") ) {
       
    22 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_OFF');
       
    23 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_OFF');
       
    24     } elsif ( Config("warn_on") ) {
       
    25 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_ON');
       
    26 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_ON');
       
    27     }
       
    28     if ( Config("debug") ) {
       
    29 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_DEBUG');
       
    30 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_DEBUG');
       
    31 	Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_DEBUG');
       
    32     } elsif ( Config("release") ) {
       
    33 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_RELEASE');
       
    34 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_RELEASE');
       
    35 	Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_RELEASE');
       
    36     }
       
    37     if ( Config("qt") || Config("opengl") ) {
       
    38 	Project('CONFIG += windows' );
       
    39     }
       
    40     if ( Config("qt") ) {
       
    41 	Project('CONFIG *= moc');
       
    42 	AddIncludePath(Project("TMAKE_INCDIR_QT"));
       
    43 	if ( Config("release") ) {
       
    44 	    Project('DEFINES += NO_DEBUG');
       
    45 	}
       
    46 	if ( Config("opengl") ) {
       
    47 	    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_OPENGL');
       
    48 	}
       
    49 	if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) {
       
    50 	    if ( Project("TMAKE_QT_DLL") ) {
       
    51 		Project('DEFINES -= QT_DLL');
       
    52 		Project('DEFINES *= QT_MAKEDLL');
       
    53 		Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_QT_DLL');
       
    54 	    }
       
    55 	} else {
       
    56 	    if ( Project("TMAKE_QT_DLL") ) {
       
    57 		Project('DEFINES *= QT_DLL');
       
    58 	    }
       
    59 	    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT');
       
    60 	    if ( Project("TMAKE_QT_DLL") ) {
       
    61 		my $qtver =FindHighestLibVersion($ENV{"QTDIR"} . "/lib", "qt");
       
    62 		Project("TMAKE_LIBS /= s/qt.lib/qt${qtver}.lib/");
       
    63 		if ( !Config("dll") ) {
       
    64 		    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_DLL');
       
    65 		}
       
    66 	    }
       
    67 	}
       
    68     }
       
    69     if ( Config("opengl") ) {
       
    70 	Project('TMAKE_LIBS *= $$TMAKE_LIBS_OPENGL');
       
    71     }
       
    72     if ( Config("dll") ) {
       
    73 	Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE_DLL');
       
    74 	Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS_DLL');
       
    75 	if ( Project("TMAKE_LIB_FLAG") ) {
       
    76 	    my $ver = Project("VERSION");
       
    77 	    $ver =~ s/\.//g;
       
    78 	    $project{"TARGET_EXT"} = "${ver}.dll";
       
    79 	} else {
       
    80 	    $project{"TARGET_EXT"} = ".dll";
       
    81 	}
       
    82     } else {
       
    83 	Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE');
       
    84 	Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS');
       
    85 	if ( Project("TMAKE_APP_FLAG") ) {
       
    86 	    $project{"TARGET_EXT"} = ".exe";
       
    87 	} else {
       
    88 	    $project{"TARGET_EXT"} = ".a";
       
    89 	}
       
    90     }
       
    91     if ( Config("windows") ) {
       
    92 	if ( Config("console") ) {
       
    93 	    Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY');
       
    94 	    Project('TMAKE_LIBS   *= $$TMAKE_LIBS_CONSOLE');
       
    95 	} else {
       
    96 	    Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_WINDOWS_ANY');
       
    97 	}
       
    98 	Project('TMAKE_LIBS   *= $$TMAKE_LIBS_WINDOWS');
       
    99     } else {
       
   100 	Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY');
       
   101 	Project('TMAKE_LIBS   *= $$TMAKE_LIBS_CONSOLE');
       
   102     }
       
   103     if ( Config("moc") ) {
       
   104 	$moc_aware = 1;
       
   105     }
       
   106     Project('TMAKE_LIBS += $$LIBS');
       
   107     Project('TMAKE_FILETAGS = HEADERS SOURCES DEF_FILE RC_FILE TARGET TMAKE_LIBS DESTDIR DLLDESTDIR $$FILETAGS');
       
   108     foreach ( split(/\s/,Project("TMAKE_FILETAGS")) ) {
       
   109 	$project{$_} =~ s-[/\\]+-/-g;
       
   110     }
       
   111     if ( Project("DEF_FILE") ) {
       
   112 	Project('TMAKE_LFLAGS *= $$DEF_FILE');
       
   113     }
       
   114     if ( Project("RC_FILE") ) {
       
   115 	if ( Project("RES_FILE") ) {
       
   116 	    tmake_error("Both .rc and .res file specified.\n" .
       
   117 			"Please specify one of them, not both.");
       
   118 	}
       
   119 	$project{"RES_FILE"} = $project{"RC_FILE"};
       
   120 	$project{"RES_FILE"} =~ s/\.rc$/.res/i;
       
   121 	Project('TARGETDEPS += $$RES_FILE');
       
   122     }
       
   123     if ( Project("RES_FILE") ) {
       
   124 	Project('TMAKE_LIBS *= $$RES_FILE');
       
   125     }
       
   126     $obj_ext  = "o";
       
   127     $dir_sep  = "/";
       
   128     $gnuwin32 = 1;
       
   129     if ( Config("qt") ) {
       
   130 	$qtdir = $ENV{"QTDIR"};
       
   131 	$project{"INCPATH"} =~ s/\$\(QTDIR\)/$qtdir/;
       
   132 	$project{"INCPATH"} =~ s/\\/\//g;
       
   133 	$project{"TMAKE_LIBS"} =~ s/\$\(QTDIR\)/$qtdir/;
       
   134 	$project{"TMAKE_LIBS"} =~ s/\\/\//g;
       
   135     }
       
   136     StdInit();
       
   137     if ( Project("VERSION") ) {
       
   138 	$project{"VER_MAJ"} = $project{"VERSION"};
       
   139 	$project{"VER_MAJ"} =~ s/\.\d+$//;
       
   140 	$project{"VER_MIN"} = $project{"VERSION"};
       
   141 	$project{"VER_MIN"} =~ s/^\d+\.//;
       
   142     }    
       
   143     if ( Config("staticlib") ) {
       
   144 	$project{"TARGET"} = $project{"DESTDIR"} . "lib" . $project{"TARGET"};
       
   145     } else {
       
   146 	$project{"TARGET"} = $project{"DESTDIR"} . $project{"TARGET"};
       
   147     }
       
   148 #$}
       
   149 #!
       
   150 # Makefile for building #$ Expand("TARGET")
       
   151 # Generated by tmake at #$ Now();
       
   152 #     Project: #$ Expand("PROJECT");
       
   153 #    Template: #$ Expand("TEMPLATE");
       
   154 #############################################################################
       
   155 
       
   156 ####### Compiler, tools and options
       
   157 
       
   158 CC	=	#$ Expand("TMAKE_CC");
       
   159 CXX	=	#$ Expand("TMAKE_CXX");
       
   160 CFLAGS	=	#$ Expand("TMAKE_CFLAGS"); ExpandGlue("DEFINES","-D"," -D","");
       
   161 CXXFLAGS=	#$ Expand("TMAKE_CXXFLAGS"); ExpandGlue("DEFINES","-D"," -D","");
       
   162 INCPATH	=	#$ ExpandPath("INCPATH",'-I',' -I','');
       
   163 #$ !Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   164 LINK	=	#$ Expand("TMAKE_LINK");
       
   165 LFLAGS	=	#$ Expand("TMAKE_LFLAGS");
       
   166 LIBS	=	#$ Expand("TMAKE_LIBS");
       
   167 #$ !Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   168 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   169 AR	=	#$ Expand("TMAKE_AR");
       
   170 RANLIB	=	#$ Expand("TMAKE_RANLIB");
       
   171 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   172 MOC	=	#$ Expand("TMAKE_MOC");
       
   173 
       
   174 ZIP	=	#$ Expand("TMAKE_ZIP");
       
   175 
       
   176 ####### Files
       
   177 
       
   178 HEADERS =	#$ ExpandList("HEADERS");
       
   179 SOURCES =	#$ ExpandList("SOURCES");
       
   180 OBJECTS =	#$ ExpandList("OBJECTS");
       
   181 SRCMOC	=	#$ ExpandList("SRCMOC");
       
   182 OBJMOC	=	#$ ExpandList("OBJMOC");
       
   183 DIST	=	#$ ExpandList("DISTFILES");
       
   184 TARGET	=	#$ ExpandGlue("TARGET",$project{"DESTDIR"},"",$project{"TARGET_EXT"});
       
   185 
       
   186 ####### Implicit rules
       
   187 
       
   188 .SUFFIXES: .cpp .cxx .cc .c
       
   189 
       
   190 .cpp.o:
       
   191 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   192 
       
   193 .cxx.o:
       
   194 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   195 
       
   196 .cc.o:
       
   197 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   198 
       
   199 .c.o:
       
   200 	#$ Expand("TMAKE_RUN_CC_IMP");
       
   201 
       
   202 ####### Build rules
       
   203 
       
   204 all: #$ ExpandGlue("ALL_DEPS",""," "," "); $text .= '$(TARGET)';
       
   205 
       
   206 $(TARGET): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS");
       
   207 #$ Project("TMAKE_APP_OR_DLL") || DisableOutput();
       
   208 	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
       
   209 #$ Project("TMAKE_APP_OR_DLL") || EnableOutput();
       
   210 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   211 	-rm -f $(TARGET)
       
   212 	$(AR) $(TARGET) $(OBJECTS) $(OBJMOC)
       
   213 	#$ ExpandGlue("TMAKE_RANLIB","",""," \$(TARGET)");
       
   214 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   215 #$ (Config("dll") && Project("DLLDESTDIR")) || DisableOutput();
       
   216 	-cp $(TARGET) #$ Expand("DLLDESTDIR");
       
   217 #$ (Config("dll") && Project("DLLDESTDIR")) || EnableOutput();
       
   218 #$ Project('RC_FILE') || DisableOutput();
       
   219 
       
   220 #$ Substitute("\$\$RES_FILE: \$\$RC_FILE\n\t\$\$TMAKE_RC \$\$RC_FILE");
       
   221 #$ Project('RC_FILE') || EnableOutput();
       
   222 
       
   223 moc: $(SRCMOC)
       
   224 
       
   225 #$ TmakeSelf();
       
   226 
       
   227 dist:
       
   228 	#$ Substitute('$(ZIP) $$PROJECT.zip $$PROJECT.pro $(SOURCES) $(HEADERS) $(DIST)');
       
   229 
       
   230 clean:
       
   231 	-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
       
   232 	#$ ExpandGlue("TMAKE_CLEAN","-rm -f "," ","");
       
   233 	-rm -f *~ core
       
   234 	#$ ExpandGlue("CLEAN_FILES","-rm -f "," ","");
       
   235 
       
   236 ####### Compile
       
   237 
       
   238 #$ BuildObj(Project("OBJECTS"),Project("SOURCES"));
       
   239 #$ BuildMocObj(Project("OBJMOC"),Project("SRCMOC"));
       
   240 #$ BuildMocSrc(Project("HEADERS"));
       
   241 #$ BuildMocSrc(Project("SOURCES"));