📄 mkfiles.pl
字号:
"# PROP BASE Target_Dir \"\"\r\n". "# PROP Use_MFC 0\r\n". "# PROP Use_Debug_Libraries 0\r\n". "# PROP Output_Dir \"Release\"\r\n". "# PROP Intermediate_Dir \"Release\"\r\n". "# PROP Ignore_Export_Lib 0\r\n". "# PROP Target_Dir \"\"\r\n". "# ADD BASE CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n". "# ADD CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /c\r\n". "# ADD BASE MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n". "# ADD MTL /nologo /D \"NDEBUG\" /mktyplib203 /win32\r\n". "# ADD BASE RSC /l 0x809 /d \"NDEBUG\"\r\n". "# ADD RSC /l 0x809 /d \"NDEBUG\"\r\n". "BSC32=bscmake.exe\r\n". "# ADD BASE BSC32 /nologo\r\n". "# ADD BSC32 /nologo\r\n". "LINK32=link.exe\r\n". "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:$subsys /machine:I386\r\n". "# ADD LINK32 $libs /nologo /subsystem:$subsys /machine:I386\r\n". "# SUBTRACT LINK32 /pdb:none\r\n". "\r\n". "!ELSEIF \"\$(CFG)\" == \"$windows_project - Win32 Debug\"\r\n". "\r\n". "# PROP BASE Use_MFC 0\r\n". "# PROP BASE Use_Debug_Libraries 1\r\n". "# PROP BASE Output_Dir \"Debug\"\r\n". "# PROP BASE Intermediate_Dir \"Debug\"\r\n". "# PROP BASE Target_Dir \"\"\r\n". "# PROP Use_MFC 0\r\n". "# PROP Use_Debug_Libraries 1\r\n". "# PROP Output_Dir \"Debug\"\r\n". "# PROP Intermediate_Dir \"Debug\"\r\n". "# PROP Ignore_Export_Lib 0\r\n". "# PROP Target_Dir \"\"\r\n". "# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n". "# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" /YX /FD /GZ /c\r\n". "# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n". "# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32\r\n". "# ADD BASE RSC /l 0x809 /d \"_DEBUG\"\r\n". "# ADD RSC /l 0x809 /d \"_DEBUG\"\r\n". "BSC32=bscmake.exe\r\n". "# ADD BASE BSC32 /nologo\r\n". "# ADD BSC32 /nologo\r\n". "LINK32=link.exe\r\n". "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:$subsys /debug /machine:I386 /pdbtype:sept\r\n". "# ADD LINK32 $libs /nologo /subsystem:$subsys /debug /machine:I386 /pdbtype:sept\r\n". "# SUBTRACT LINK32 /pdb:none\r\n". "\r\n". "!ENDIF \r\n". "\r\n". "# Begin Target\r\n". "\r\n". "# Name \"$windows_project - Win32 Release\"\r\n". "# Name \"$windows_project - Win32 Debug\"\r\n". "# Begin Group \"Source Files\"\r\n". "\r\n". "# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;idl;hpj;bat\"\r\n"; foreach $source_file (@source_files) { print "# Begin Source File\r\n". "\r\n". "SOURCE=..\\..\\$source_file\r\n"; if($source_file =~ /ssh\.c/io) { # Disable 'Edit and continue' as Visual Studio can't handle the macros print "\r\n". "!IF \"\$(CFG)\" == \"$windows_project - Win32 Release\"\r\n". "\r\n". "!ELSEIF \"\$(CFG)\" == \"$windows_project - Win32 Debug\"\r\n". "\r\n". "# ADD CPP /Zi\r\n". "\r\n". "!ENDIF \r\n". "\r\n"; } print "# End Source File\r\n"; } print "# End Group\r\n". "# Begin Group \"Header Files\"\r\n". "\r\n". "# PROP Default_Filter \"h;hpp;hxx;hm;inl\"\r\n"; foreach $header_file (@header_files) { print "# Begin Source File\r\n". "\r\n". "SOURCE=..\\..\\$header_file\r\n". "# End Source File\r\n"; } print "# End Group\r\n". "# Begin Group \"Resource Files\"\r\n". "\r\n". "# PROP Default_Filter \"ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe\"\r\n"; foreach $resource_file (@resources) { print "# Begin Source File\r\n". "\r\n". "SOURCE=..\\..\\$resource_file\r\n". "# End Source File\r\n"; } print "# End Group\r\n". "# End Target\r\n". "# End Project\r\n"; select STDOUT; close OUT; chdir ".."; }}if (defined $makefiles{'gtk'}) { $dirpfx = &dirpfx($makefiles{'gtk'}, "/"); ##-- X/GTK/Unix makefile open OUT, ">$makefiles{'gtk'}"; select OUT; print "# Makefile for $project_name under X/GTK and Unix.\n". "#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\n". "# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n"; # gcc command line option is -D not /D ($_ = $help) =~ s/=\/D/=-D/gs; print $_; print "\n". "# You can define this path to point at your tools if you need to\n". "# TOOLPATH = /opt/gcc/bin\n". "CC = \$(TOOLPATH)cc\n". "\n". &splitline("CFLAGS = -O2 -Wall -Werror -g " . (join " ", map {"-I$dirpfx$_"} @srcdirs) . " `gtk-config --cflags`")."\n". "XLDFLAGS = `gtk-config --libs`\n". "ULDFLAGS =#\n". "INSTALL=install\n", "INSTALL_PROGRAM=\$(INSTALL)\n", "INSTALL_DATA=\$(INSTALL)\n", "prefix=/usr/local\n", "exec_prefix=\$(prefix)\n", "bindir=\$(exec_prefix)/bin\n", "mandir=\$(prefix)/man\n", "man1dir=\$(mandir)/man1\n", "\n". ".SUFFIXES:\n". "\n". "%.o:\n". "\t\$(CC) \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) -c \$<\n". "\n"; print &splitline("all:" . join "", map { " $_" } &progrealnames("XU")); print "\n\n"; foreach $p (&prognames("XU")) { ($prog, $type) = split ",", $p; $objstr = &objects($p, "X.o", undef, undef); print &splitline($prog . ": " . $objstr), "\n"; $libstr = &objects($p, undef, undef, "-lX"); print &splitline("\t\$(CC)" . $mw . " \$(${type}LDFLAGS) -o \$@ " . $objstr . " $libstr", 69), "\n\n"; } foreach $d (&deps("X.o", undef, $dirpfx, "/")) { print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})), "\n"; } print "\n"; print $makefile_extra{'gtk'}; print "\nclean:\n". "\trm -f *.o". (join "", map { " $_" } &progrealnames("XU")) . "\n"; select STDOUT; close OUT;}if (defined $makefiles{'mpw'}) { ##-- MPW Makefile open OUT, ">$makefiles{'mpw'}"; select OUT; print "# Makefile for $project_name under MPW.\n#\n". "# This file was created by `mkfiles.pl' from the `Recipe' file.\n". "# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n"; # MPW command line option is -d not /D ($_ = $help) =~ s/=\/D/=-d /gs; print $_; print "\n\n". "ROptions = `Echo \"{VER}\" | StreamEdit -e \"1,\$ replace /=(\xc5)\xa81\xb0/ 'STR=\xb6\xb6\xb6\xb6\xb6\"' \xa81 '\xb6\xb6\xb6\xb6\xb6\"'\"`". "\n". "C_68K = {C}\n". "C_CFM68K = {C}\n". "C_PPC = {PPCC}\n". "C_Carbon = {PPCC}\n". "\n". "# -w 35 disables \"unused parameter\" warnings\n". "COptions = -i : -i :: -i ::charset -w 35 -w err -proto strict -ansi on \xb6\n". " -notOnce\n". "COptions_68K = {COptions} -model far -opt time\n". "# Enabling \"-opt space\" for CFM-68K gives me undefined references to\n". "# _\$LDIVT and _\$LMODT.\n". "COptions_CFM68K = {COptions} -model cfmSeg -opt time\n". "COptions_PPC = {COptions} -opt size -traceback\n". "COptions_Carbon = {COptions} -opt size -traceback -d TARGET_API_MAC_CARBON\n". "\n". "Link_68K = ILink\n". "Link_CFM68K = ILink\n". "Link_PPC = PPCLink\n". "Link_Carbon = PPCLink\n". "\n". "LinkOptions = -c 'pTTY'\n". "LinkOptions_68K = {LinkOptions} -br 68k -model far -compact\n". "LinkOptions_CFM68K = {LinkOptions} -br 020 -model cfmseg -compact\n". "LinkOptions_PPC = {LinkOptions}\n". "LinkOptions_Carbon = -m __appstart -w {LinkOptions}\n". "\n". "Libs_68K = \"{CLibraries}StdCLib.far.o\" \xb6\n". " \"{Libraries}MacRuntime.o\" \xb6\n". " \"{Libraries}MathLib.far.o\" \xb6\n". " \"{Libraries}IntEnv.far.o\" \xb6\n". " \"{Libraries}Interface.o\" \xb6\n". " \"{Libraries}Navigation.far.o\" \xb6\n". " \"{Libraries}OpenTransport.o\" \xb6\n". " \"{Libraries}OpenTransportApp.o\" \xb6\n". " \"{Libraries}OpenTptInet.o\" \xb6\n". " \"{Libraries}UnicodeConverterLib.far.o\"\n". "\n". "Libs_CFM = \"{SharedLibraries}InterfaceLib\" \xb6\n". " \"{SharedLibraries}StdCLib\" \xb6\n". " \"{SharedLibraries}AppearanceLib\" \xb6\n". " -weaklib AppearanceLib \xb6\n". " \"{SharedLibraries}NavigationLib\" \xb6\n". " -weaklib NavigationLib \xb6\n". " \"{SharedLibraries}TextCommon\" \xb6\n". " -weaklib TextCommon \xb6\n". " \"{SharedLibraries}UnicodeConverter\" \xb6\n". " -weaklib UnicodeConverter\n". "\n". "Libs_CFM68K = {Libs_CFM} \xb6\n". " \"{CFM68KLibraries}NuMacRuntime.o\"\n". "\n". "Libs_PPC = {Libs_CFM} \xb6\n". " \"{SharedLibraries}ControlsLib\" \xb6\n". " -weaklib ControlsLib \xb6\n". " \"{SharedLibraries}WindowsLib\" \xb6\n". " -weaklib WindowsLib \xb6\n". " \"{SharedLibraries}OpenTransportLib\" \xb6\n". " -weaklib OTClientLib \xb6\n". " -weaklib OTClientUtilLib \xb6\n". " \"{SharedLibraries}OpenTptInternetLib\" \xb6\n". " -weaklib OTInetClientLib \xb6\n". " \"{PPCLibraries}StdCRuntime.o\" \xb6\n". " \"{PPCLibraries}PPCCRuntime.o\" \xb6\n". " \"{PPCLibraries}CarbonAccessors.o\" \xb6\n". " \"{PPCLibraries}OpenTransportAppPPC.o\" \xb6\n". " \"{PPCLibraries}OpenTptInetPPC.o\"\n". "\n". "Libs_Carbon = \"{PPCLibraries}CarbonStdCLib.o\" \xb6\n". " \"{PPCLibraries}StdCRuntime.o\" \xb6\n". " \"{PPCLibraries}PPCCRuntime.o\" \xb6\n". " \"{SharedLibraries}CarbonLib\" \xb6\n". " \"{SharedLibraries}StdCLib\"\n". "\n"; print &splitline("all \xc4 " . join(" ", &progrealnames("M")), undef, "\xb6"); print "\n\n"; foreach $p (&prognames("M")) { ($prog, $type) = split ",", $p; print &splitline("$prog \xc4 $prog.68k $prog.ppc $prog.carbon", undef, "\xb6"), "\n\n"; $rsrc = &objects($p, "", "X.rsrc", undef); foreach $arch (qw(68K CFM68K PPC Carbon)) { $objstr = &objects($p, "X.\L$arch\E.o", "", undef); print &splitline("$prog.\L$arch\E \xc4 $objstr $rsrc", undef, "\xb6"); print "\n"; print &splitline("\tDuplicate -y $rsrc {Targ}", 69, "\xb6"), "\n"; print &splitline("\t{Link_$arch} -o {Targ} -fragname $prog " . "{LinkOptions_$arch} " . $objstr . " {Libs_$arch}", 69, "\xb6"), "\n"; print &splitline("\tSetFile -a BMi {Targ}", 69, "\xb6"), "\n\n"; } } foreach $d (&deps("", "X.rsrc", "::", ":")) { next unless $d->{obj}; print &splitline(sprintf("%s \xc4 %s", $d->{obj}, join " ", @{$d->{deps}}), undef, "\xb6"), "\n"; print "\tRez ", $d->{deps}->[0], " -o {Targ} {ROptions}\n\n"; } foreach $arch (qw(68K CFM68K)) { foreach $d (&deps("X.\L$arch\E.o", "", "::", ":")) { next unless $d->{obj}; print &splitline(sprintf("%s \xc4 %s", $d->{obj}, join " ", @{$d->{deps}}), undef, "\xb6"), "\n"; print "\t{C_$arch} ", $d->{deps}->[0], " -o {Targ} {COptions_$arch}\n\n"; } } foreach $arch (qw(PPC Carbon)) { foreach $d (&deps("X.\L$arch\E.o", "", "::", ":")) { next unless $d->{obj}; print &splitline(sprintf("%s \xc4 %s", $d->{obj}, join " ", @{$d->{deps}}), undef, "\xb6"), "\n"; # The odd stuff here seems to stop afpd getting confused. print "\techo -n > {Targ}\n"; print "\tsetfile -t XCOF {Targ}\n"; print "\t{C_$arch} ", $d->{deps}->[0], " -o {Targ} {COptions_$arch}\n\n"; } } select STDOUT; close OUT;}if (defined $makefiles{'lcc'}) { $dirpfx = &dirpfx($makefiles{'lcc'}, "\\"); ##-- lcc makefile open OUT, ">$makefiles{'lcc'}"; select OUT; print "# Makefile for $project_name under lcc.\n". "#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\n". "# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n"; # lcc command line option is -D not /D ($_ = $help) =~ s/=\/D/=-D/gs; print $_; print "\n". "# If you rename this file to `Makefile', you should change this line,\n". "# so that the .rsp files still depend on the correct makefile.\n". "MAKEFILE = Makefile.lcc\n". "\n". "# C compilation flags\n". "CFLAGS = -D_WINDOWS " . (join " ", map {"-I$dirpfx$_"} @srcdirs) . "\n". "\n". "# Get include directory for resource compiler\n". "\n". ".c.obj:\n". &splitline("\tlcc -O -p6 \$(COMPAT) \$(FWHACK)". " \$(XFLAGS) \$(CFLAGS) \$*.c",69)."\n". ".rc.res:\n". &splitline("\tlrc \$(FWHACK) \$(RCFL) -r \$*.rc",69)."\n". "\n"; print &splitline("all:" . join "", map { " $_.exe" } &progrealnames("GC")); print "\n\n"; foreach $p (&prognames("GC")) { ($prog, $type) = split ",", $p; $objstr = &objects($p, "X.obj", "X.res", undef); print &splitline("$prog.exe: " . $objstr ), "\n"; $subsystemtype = undef; if ($type eq "G") { $subsystemtype = "-subsystem windows"; } my $libss = "shell32.lib wsock32.lib ws2_32.lib winspool.lib winmm.lib imm32.lib"; print &splitline("\tlcclnk $subsystemtype -o $prog.exe $objstr $libss"); print "\n\n"; } foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\")) { print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})), "\n"; } print "\n"; print $makefile_extra{'lcc'}; print "\nclean:\n". "\t-del *.obj\n". "\t-del *.exe\n". "\t-del *.res\n"; select STDOUT; close OUT;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -