uvmac/setup/BLDUTIL3.c
InvisibleUp a8e9bc990e Started a rewrite of the makefile generator.
Probably not worth it, let's be honest...
2019-07-27 14:58:45 -04:00

1219 lines
23 KiB
C

/*
BLDUTIL3.i
Copyright (C) 2007 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
*/
/*
BuiLD system UTILities part 3
*/
#include "COREDEFS.h"
#define src_d_name "src"
#define cfg_d_name "cfg"
#define obj_d_name "bld"
/* not "obj", so as to work in freebsd make */
LOCALVAR blnr HaveAltSrc;
LOCALPROC WritepDtString(void)
{
WriteCStrToDestFile((char *)pDt);
}
LOCALPROC WriteMaintainerName(void)
{
WriteCStrToDestFile(kMaintainerName);
}
LOCALPROC WriteHomePage(void)
{
WriteCStrToDestFile(kStrHomePage);
}
/* end of default value of options */
LOCALPROC WriteVersionStr(void)
{
WriteDec2CharToOutput(MajorVersion);
WriteCStrToDestFile(".");
WriteDec2CharToOutput(MinorVersion);
}
LOCALPROC WriteAppVariationStr(void)
{
WriteCStrToDestFile(vVariationName);
}
LOCALPROC WriteAppCopyrightYearStr(void)
{
WriteCStrToDestFile(kStrCopyrightYear);
}
LOCALPROC WriteGetInfoString(void)
{
WriteAppVariationStr();
WriteCStrToDestFile(", Copyright ");
WriteAppCopyrightYearStr();
WriteCStrToDestFile(" maintained by ");
WriteMaintainerName();
WriteCStrToDestFile(".");
}
LOCALPROC WriteLProjName(void)
{
WriteCStrToDestFile(GetLProjName(gbo_lang));
}
/* --- XML utilities --- */
LOCALPROC WriteXMLtagBegin(char *s)
{
WriteCStrToDestFile("<");
WriteCStrToDestFile(s);
WriteCStrToDestFile(">");
}
LOCALPROC WriteXMLtagEnd(char *s)
{
WriteCStrToDestFile("</");
WriteCStrToDestFile(s);
WriteCStrToDestFile(">");
}
LOCALPROC WriteBeginXMLtagLine(char *s)
{
WriteBgnDestFileLn();
WriteXMLtagBegin(s);
WriteEndDestFileLn();
++DestFileIndent;
}
LOCALPROC WriteEndXMLtagLine(char *s)
{
--DestFileIndent;
WriteBgnDestFileLn();
WriteXMLtagEnd(s);
WriteEndDestFileLn();
}
LOCALPROC WriteXMLtagBeginValEndLine(char *t, char *v)
{
WriteBgnDestFileLn();
WriteXMLtagBegin(t);
WriteCStrToDestFile(v);
WriteXMLtagEnd(t);
WriteEndDestFileLn();
}
LOCALPROC WriteXMLtagBeginProcValEndLine(char *t, MyProc v)
{
WriteBgnDestFileLn();
WriteXMLtagBegin(t);
v();
WriteXMLtagEnd(t);
WriteEndDestFileLn();
}
LOCALPROC WriteXMLtaggedLines(char *s, MyProc p)
{
WriteBeginXMLtagLine(s);
if (NULL != p) {
p();
}
WriteEndXMLtagLine(s);
}
LOCALPROC WriteXMLtaglinewithprops(char *s, MyProc p)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("<");
WriteCStrToDestFile(s);
WriteEndDestFileLn();
++DestFileIndent;
if (NULL != p) {
p();
}
--DestFileIndent;
WriteDestFileLn("/>");
}
LOCALPROC WriteXMLtaggedLinesWithProps(char *s, MyProc pp, MyProc p)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("<");
WriteCStrToDestFile(s);
WriteEndDestFileLn();
++DestFileIndent;
if (NULL != pp) {
pp();
}
WriteDestFileLn(">");
if (NULL != p) {
p();
}
WriteEndXMLtagLine(s);
}
LOCALPROC WriteXMLtaggedLinesWith1LnProps(char *s, MyProc pp, MyProc p)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("<");
WriteCStrToDestFile(s);
if (NULL != pp) {
pp();
}
WriteCStrToDestFile(">");
WriteEndDestFileLn();
++DestFileIndent;
if (NULL != p) {
p();
}
WriteEndXMLtagLine(s);
}
/* --- end XML utilities --- */
/* --- c preprocessor utilities --- */
LOCALPROC WriteCompCondBool(char *s, blnr v)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#define ");
WriteCStrToDestFile(s);
if (v) {
WriteCStrToDestFile(" 1");
} else {
WriteCStrToDestFile(" 0");
}
WriteEndDestFileLn();
}
LOCALPROC WriteDefineUimr(char *s, uimr v)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#define ");
WriteCStrToDestFile(s);
WriteSpaceToDestFile();
WriteUnsignedToOutput(v);
WriteEndDestFileLn();
}
LOCALPROC WriteCDefQuote(char *s, MyProc p)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#define ");
WriteCStrToDestFile(s);
WriteSpaceToDestFile();
WriteQuoteToDestFile();
p();
WriteQuoteToDestFile();
WriteEndDestFileLn();
}
LOCALPROC WriteWrongCNFGGLOB(void)
{
WriteDestFileLn("#error \"wrong CNFGGLOB.h\"");
}
LOCALPROC WriteCheckPreDef(char *s)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#ifndef ");
WriteCStrToDestFile(s);
WriteEndDestFileLn();
WriteWrongCNFGGLOB();
WriteDestFileLn("#endif");
}
LOCALPROC WriteCheckPreNDef(char *s)
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#ifdef ");
WriteCStrToDestFile(s);
WriteEndDestFileLn();
WriteWrongCNFGGLOB();
WriteDestFileLn("#endif");
}
/* --- end c preprocessor utilities --- */
LOCALPROC WritePathInDirToDestFile0(MyProc p, MyProc ps,
blnr isdir)
{
switch (cur_ide) {
case gbk_ide_mpw:
case gbk_ide_mw8:
if (p != NULL) {
p();
} else {
WriteCStrToDestFile(":");
}
ps();
if (isdir) {
WriteCStrToDestFile(":");
}
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_xcd:
case gbk_ide_snc:
case gbk_ide_dkp:
case gbk_ide_ccc:
if (p != NULL) {
p();
}
ps();
if (isdir) {
WriteCStrToDestFile("/");
}
break;
case gbk_ide_msv:
case gbk_ide_lcc:
case gbk_ide_dmc:
case gbk_ide_plc:
if (p != NULL) {
p();
WriteBackSlashToDestFile();
} else {
if (gbk_ide_lcc == cur_ide) {
if (! UseCmndLine) {
WriteCStrToDestFile("c:\\output\\");
}
} else if ((gbk_ide_msv == cur_ide)
&& (ide_vers >= 7100)
&& (ide_vers < 10000))
{
WriteCStrToDestFile(".\\");
}
}
ps();
break;
case gbk_ide_mgw:
if (p != NULL) {
p();
WriteCStrToDestFile("/");
}
ps();
break;
case gbk_ide_dvc:
if (p != NULL) {
p();
if (UseCmndLine) {
WriteCStrToDestFile("/");
} else {
WriteBackSlashToDestFile();
}
}
ps();
break;
}
}
LOCALPROC WriteFileInDirToDestFile0(MyProc p, MyProc ps)
{
WritePathInDirToDestFile0(p, ps, falseblnr);
}
LOCALPROC WriteSubDirToDestFile(MyProc p, MyProc ps)
{
WritePathInDirToDestFile0(p, ps, trueblnr);
}
LOCALPROC Write_toplevel_f_ToDestFile(MyProc ps)
{
WritePathInDirToDestFile0(NULL, ps, falseblnr);
}
LOCALPROC Write_toplevel_d_ToDestFile(MyProc ps)
{
WritePathInDirToDestFile0(NULL, ps, trueblnr);
}
LOCALPROC Write_src_d_Name(void)
{
WriteCStrToDestFile(src_d_name);
}
LOCALPROC Write_src_d_ToDestFile(void)
{
Write_toplevel_d_ToDestFile(Write_src_d_Name);
}
LOCALPROC Write_cfg_d_Name(void)
{
WriteCStrToDestFile(cfg_d_name);
}
LOCALPROC Write_cfg_d_ToDestFile(void)
{
Write_toplevel_d_ToDestFile(Write_cfg_d_Name);
}
LOCALPROC Write_obj_d_Name(void)
{
WriteCStrToDestFile(obj_d_name);
}
LOCALPROC Write_obj_d_ToDestFile(void)
{
Write_toplevel_d_ToDestFile(Write_obj_d_Name);
}
LOCALPROC WriteLProjFolderName(void)
{
WriteLProjName();
WriteCStrToDestFile(".lproj");
}
LOCALPROC WriteLProjFolderPath(void)
{
WriteSubDirToDestFile(Write_cfg_d_ToDestFile,
WriteLProjFolderName);
}
LOCALPROC WriteStrAppAbbrev(void)
{
WriteCStrToDestFile(vStrAppAbbrev);
}
LOCALPROC WriteAppNameStr(void)
{
WriteStrAppAbbrev();
switch (gbo_targfam) {
case gbk_targfam_mach:
case gbk_targfam_carb:
if (HaveMacBundleApp) {
WriteCStrToDestFile(".app");
}
break;
case gbk_targfam_mswn:
case gbk_targfam_wnce:
case gbk_targfam_cygw:
WriteCStrToDestFile(".exe");
break;
case gbk_targfam_lnds:
WriteCStrToDestFile(".nds");
break;
default:
break;
}
}
LOCALPROC WriteAppNamePath(void)
{
if (HaveMacBundleApp) {
Write_toplevel_d_ToDestFile(WriteAppNameStr);
} else {
Write_toplevel_f_ToDestFile(WriteAppNameStr);
}
}
LOCALPROC WriteStrAppUnabrevName(void)
{
WriteCStrToDestFile(kStrAppName);
}
LOCALPROC Write_contents_d_Name(void)
{
WriteCStrToDestFile("Contents");
}
LOCALPROC Write_machocontents_d_ToDestFile(void)
{
WriteSubDirToDestFile(WriteAppNamePath,
Write_contents_d_Name);
}
LOCALPROC Write_macos_d_Name(void)
{
WriteCStrToDestFile("MacOS");
}
LOCALPROC Write_machomac_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_machocontents_d_ToDestFile,
Write_macos_d_Name);
}
LOCALPROC Write_resources_d_Name(void)
{
WriteCStrToDestFile("Resources");
}
LOCALPROC Write_machores_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_machocontents_d_ToDestFile,
Write_resources_d_Name);
}
LOCALPROC WriteBinElfObjName(void)
{
WriteStrAppAbbrev();
WriteCStrToDestFile(".elf");
}
LOCALPROC WriteBinElfObjObjPath(void)
{
WriteFileInDirToDestFile0(Write_obj_d_ToDestFile,
WriteBinElfObjName);
}
LOCALPROC WriteBinArmObjName(void)
{
WriteStrAppAbbrev();
WriteCStrToDestFile(".arm9");
}
LOCALPROC WriteBinArmObjObjPath(void)
{
WriteFileInDirToDestFile0(Write_obj_d_ToDestFile,
WriteBinArmObjName);
}
LOCALPROC Write_machobinpath_ToDestFile(void)
{
if (HaveMacBundleApp) {
WriteFileInDirToDestFile0(Write_machomac_d_ToDestFile,
WriteStrAppAbbrev);
} else {
WriteAppNamePath();
}
}
LOCALPROC Write_tmachobun_d_Name(void)
{
WriteCStrToDestFile("AppTemp");
}
LOCALPROC Write_tmachobun_d_ToDestFile(void)
{
Write_toplevel_d_ToDestFile(Write_tmachobun_d_Name);
}
LOCALPROC Write_tmachocontents_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_tmachobun_d_ToDestFile,
Write_contents_d_Name);
}
LOCALPROC Write_tmachomac_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_tmachocontents_d_ToDestFile,
Write_macos_d_Name);
}
LOCALPROC Write_tmachores_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_tmachocontents_d_ToDestFile,
Write_resources_d_Name);
}
LOCALPROC Write_tmacholang_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_tmachores_d_ToDestFile,
WriteLProjFolderName);
}
LOCALPROC Write_tmachobinpath_ToDestFile(void)
{
WriteFileInDirToDestFile0(Write_tmachomac_d_ToDestFile,
WriteStrAppAbbrev);
}
LOCALPROC Write_umachobun_d_Name(void)
{
WriteStrAppAbbrev();
WriteCStrToDestFile("_u.app");
}
LOCALPROC Write_umachobun_d_ToDestFile(void)
{
Write_toplevel_d_ToDestFile(Write_umachobun_d_Name);
}
LOCALPROC Write_umachocontents_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_umachobun_d_ToDestFile,
Write_contents_d_Name);
}
LOCALPROC Write_umachomac_d_ToDestFile(void)
{
WriteSubDirToDestFile(Write_umachocontents_d_ToDestFile,
Write_macos_d_Name);
}
LOCALPROC Write_umachobinpath_ToDestFile(void)
{
WriteFileInDirToDestFile0(Write_umachomac_d_ToDestFile,
WriteStrAppAbbrev);
}
LOCALPROC WriteInfoPlistFileName(void)
{
WriteCStrToDestFile("Info.plist");
}
LOCALPROC WriteInfoPlistFilePath(void)
{
WriteFileInDirToDestFile0(Write_cfg_d_ToDestFile,
WriteInfoPlistFileName);
}
LOCALPROC WriteDummyLangFileName(void)
{
WriteCStrToDestFile("dummy.txt");
}
LOCALPROC Write_tmachoLangDummyPath(void)
{
WriteFileInDirToDestFile0(Write_tmacholang_d_ToDestFile,
WriteDummyLangFileName);
}
LOCALPROC Write_tmachoLangDummyContents(void)
{
WriteCStrToDestFile("dummy");
}
LOCALPROC Write_tmachoPkgInfoName(void)
{
WriteCStrToDestFile("PkgInfo");
}
LOCALPROC Write_tmachoPkgInfoPath(void)
{
WriteFileInDirToDestFile0(Write_tmachocontents_d_ToDestFile,
Write_tmachoPkgInfoName);
}
LOCALPROC Write_MacCreatorSigOrGeneric(void)
{
if (WantIconMaster) {
WriteCStrToDestFile(kMacCreatorSig);
} else {
WriteCStrToDestFile("????");
}
}
LOCALPROC Write_tmachoPkgInfoContents(void)
{
WriteCStrToDestFile("APPL");
Write_MacCreatorSigOrGeneric();
}
LOCALPROC Write_machoRsrcName(void)
{
WriteStrAppAbbrev();
WriteCStrToDestFile(".rsrc");
}
LOCALPROC Write_machoRsrcPath(void)
{
WriteFileInDirToDestFile0(Write_machores_d_ToDestFile,
Write_machoRsrcName);
}
LOCALPROC Write_AppIconName(void)
{
WriteCStrToDestFile("ICONAPPO.icns");
}
LOCALPROC Write_machoAppIconPath(void)
{
WriteFileInDirToDestFile0(Write_machores_d_ToDestFile,
Write_AppIconName);
}
LOCALPROC Write_srcAppIconPath(void)
{
WriteFileInDirToDestFile0(Write_src_d_ToDestFile,
Write_AppIconName);
}
LOCALPROC WriteMainRsrcName(void)
{
switch (cur_ide) {
case gbk_ide_msv:
case gbk_ide_dvc:
case gbk_ide_cyg:
case gbk_ide_mgw:
case gbk_ide_lcc:
case gbk_ide_dmc:
case gbk_ide_dkp:
case gbk_ide_plc:
WriteCStrToDestFile("main.rc");
break;
case gbk_ide_mvc:
switch (gbo_targfam) {
case gbk_targfam_mswn:
case gbk_targfam_wnce:
WriteCStrToDestFile("main.rc");
break;
default:
WriteCStrToDestFile("main.r");
break;
}
break;
default:
WriteCStrToDestFile("main.r");
break;
}
}
LOCALPROC Write_Rsrc_d_ToDestFile(void)
{
if ((gbk_targfam_mswn == gbo_targfam)
|| (gbk_targfam_wnce == gbo_targfam))
{
Write_cfg_d_ToDestFile();
} else
{
Write_src_d_ToDestFile();
}
}
LOCALPROC WriteMainRsrcSrcPath(void)
{
WriteFileInDirToDestFile0(Write_Rsrc_d_ToDestFile,
WriteMainRsrcName);
}
LOCALPROC WriteMainRsrcObjName(void)
{
#if (gbk_ide_msv == cur_ide) \
|| (gbk_ide_lcc == cur_ide) \
|| (gbk_ide_dvc == cur_ide) \
|| (gbk_ide_cyg == cur_ide) \
|| (gbk_ide_mgw == cur_ide) \
|| (gbk_ide_mvc == cur_ide) \
|| (gbk_ide_dmc == cur_ide) \
|| (gbk_ide_dkp == cur_ide) \
|| (gbk_ide_plc == cur_ide)
WriteCStrToDestFile("main.res");
#endif
#if (gbk_ide_mpw == cur_ide)
WriteCStrToDestFile("main.rsrc");
#endif
}
LOCALPROC WriteMainRsrcObjPath(void)
{
WriteFileInDirToDestFile0(Write_obj_d_ToDestFile,
WriteMainRsrcObjName);
}
LOCALPROC WriteCNFGGLOBName(void)
{
WriteCStrToDestFile("CNFGGLOB.h");
}
LOCALPROC WriteCNFGGLOBPath(void)
{
WriteFileInDirToDestFile0(Write_cfg_d_ToDestFile,
WriteCNFGGLOBName);
}
LOCALPROC WriteCNFGRAPIName(void)
{
WriteCStrToDestFile("CNFGRAPI.h");
}
LOCALPROC WriteCNFGRAPIPath(void)
{
WriteFileInDirToDestFile0(Write_cfg_d_ToDestFile,
WriteCNFGRAPIName);
}
LOCALPROC WritePathArgInMakeCmnd(MyProc p)
{
switch (cur_ide) {
case gbk_ide_mpw:
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_msv:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteSpaceToDestFile();
WriteQuoteToDestFile();
p();
WriteQuoteToDestFile();
break;
case gbk_ide_lcc:
/* saw some glitches with quotes */
case gbk_ide_dmc:
case gbk_ide_plc:
case gbk_ide_dvc:
case gbk_ide_mgw:
WriteSpaceToDestFile();
p();
break;
default:
break;
}
}
LOCALPROC WriteMakeVar(char *s)
{
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("{");
WriteCStrToDestFile(s);
WriteCStrToDestFile("}");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_msv:
case gbk_ide_lcc:
case gbk_ide_dvc:
case gbk_ide_mgw:
case gbk_ide_dmc:
case gbk_ide_plc:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCStrToDestFile("$(");
WriteCStrToDestFile(s);
WriteCStrToDestFile(")");
break;
default:
break;
}
}
LOCALPROC WriteMakeDependFile(MyProc p)
{
switch (cur_ide) {
case gbk_ide_msv:
case gbk_ide_mpw:
WriteSpaceToDestFile();
WriteQuoteToDestFile();
p();
WriteQuoteToDestFile();
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_lcc:
case gbk_ide_dvc:
case gbk_ide_mgw:
case gbk_ide_dmc:
case gbk_ide_plc:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteSpaceToDestFile();
p();
break;
default:
break;
}
}
LOCALPROC WriteMainRsrcObjMSCdeps(void)
{
WriteMakeDependFile(WriteMainRsrcSrcPath);
}
LOCALPROC WriteMakeRule(MyProc ptarg,
MyProc pdeps, MyProc pbody)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteQuoteToDestFile();
ptarg();
WriteQuoteToDestFile();
WriteCStrToDestFile(" \304");
pdeps();
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_ccc:
ptarg();
WriteCStrToDestFile(" :");
pdeps();
break;
case gbk_ide_msv:
WriteQuoteToDestFile();
ptarg();
WriteQuoteToDestFile();
WriteCStrToDestFile(" :");
pdeps();
break;
case gbk_ide_lcc:
case gbk_ide_dvc:
case gbk_ide_mgw:
case gbk_ide_dmc:
case gbk_ide_plc:
case gbk_ide_dkp:
ptarg();
WriteCStrToDestFile(":");
pdeps();
break;
default:
break;
}
WriteEndDestFileLn();
++DestFileIndent;
pbody();
--DestFileIndent;
}
LOCALPROC WriteMkDir(MyProc p)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("NewFolder");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_ccc:
case gbk_ide_dkp:
WriteCStrToDestFile("mkdir");
break;
default:
break;
}
WritePathArgInMakeCmnd(p);
WriteEndDestFileLn();
}
LOCALPROC WriteRmDir(MyProc p)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("Delete -i -y");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_ccc:
case gbk_ide_dkp:
WriteCStrToDestFile("rm -fr");
break;
default:
break;
}
WritePathArgInMakeCmnd(p);
WriteEndDestFileLn();
}
LOCALPROC WriteRmFile(MyProc p)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("Delete -i");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_dvc:
case gbk_ide_mgw:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCStrToDestFile("rm -f");
break;
case gbk_ide_msv:
WriteCStrToDestFile("-@erase");
break;
case gbk_ide_lcc:
case gbk_ide_dmc:
case gbk_ide_plc:
WriteCStrToDestFile("del");
break;
default:
break;
}
WritePathArgInMakeCmnd(p);
WriteEndDestFileLn();
}
LOCALPROC WriteCopyFile(MyProc pfrom, MyProc pto)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("Duplicate");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCStrToDestFile("cp");
break;
default:
break;
}
WritePathArgInMakeCmnd(pfrom);
WritePathArgInMakeCmnd(pto);
WriteEndDestFileLn();
}
LOCALPROC WriteMoveDir(MyProc pfrom, MyProc pto)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("Move");
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_xcd:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCStrToDestFile("mv");
break;
default:
break;
}
WritePathArgInMakeCmnd(pfrom);
WritePathArgInMakeCmnd(pto);
WriteEndDestFileLn();
}
LOCALPROC WriteEchoToNewFile(MyProc ptext, MyProc pto, blnr newline)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
WriteCStrToDestFile("Echo");
if (! newline) {
WriteCStrToDestFile(" -n");
}
WriteCStrToDestFile(" \"");
ptext();
WriteCStrToDestFile("\" >");
WritePathArgInMakeCmnd(pto);
break;
break;
case gbk_ide_cyg:
case gbk_ide_snc:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCStrToDestFile("echo");
if (! newline) {
WriteCStrToDestFile(" -n");
}
WriteCStrToDestFile(" \"");
ptext();
WriteCStrToDestFile("\" >");
WritePathArgInMakeCmnd(pto);
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_xcd:
WriteCStrToDestFile("printf \"");
ptext();
if (newline) {
WriteCStrToDestFile("\\n");
}
WriteCStrToDestFile("\" >");
WritePathArgInMakeCmnd(pto);
break;
default:
break;
}
WriteEndDestFileLn();
}
LOCALPROC WriteCompileCExec(void)
{
switch (cur_ide) {
case gbk_ide_mpw:
if (gbk_cpufam_68k == gbo_cpufam) {
WriteCStrToDestFile("SC");
} else if (gbk_cpufam_ppc == gbo_cpufam) {
WriteCStrToDestFile("MrC");
}
break;
case gbk_ide_bgc:
case gbk_ide_mvc:
case gbk_ide_cyg:
case gbk_ide_xcd:
WriteCStrToDestFile("gcc");
break;
case gbk_ide_snc:
case gbk_ide_ccc:
WriteCStrToDestFile("cc");
break;
case gbk_ide_msv:
if (gbk_cpufam_arm == gbo_cpufam) {
WriteCStrToDestFile("clarm.exe");
} else {
WriteCStrToDestFile("cl.exe");
}
break;
case gbk_ide_lcc:
WriteCStrToDestFile("lcc.exe");
break;
case gbk_ide_dvc:
case gbk_ide_mgw:
WriteCStrToDestFile("gcc.exe");
break;
case gbk_ide_dkp:
WriteCStrToDestFile("$(DEVKITARM)/bin/arm-eabi-gcc.exe");
break;
case gbk_ide_dmc:
WriteCStrToDestFile("dmc.exe");
break;
case gbk_ide_plc:
WriteCStrToDestFile("pocc.exe");
break;
default:
break;
}
}
LOCALPROC WriteCompileC(MyProc psrc, MyProc pobj,
blnr UseAPI)
{
WriteBgnDestFileLn();
switch (cur_ide) {
case gbk_ide_mpw:
case gbk_ide_bgc:
case gbk_ide_cyg:
case gbk_ide_xcd:
case gbk_ide_snc:
case gbk_ide_dvc:
case gbk_ide_mgw:
case gbk_ide_dkp:
case gbk_ide_ccc:
WriteCompileCExec();
WritePathArgInMakeCmnd(psrc);
WriteCStrToDestFile(" -o");
WritePathArgInMakeCmnd(pobj);
WriteSpaceToDestFile();
if (! UseAPI) {
WriteMakeVar("mk_COptions");
} else {
if (gbk_ide_xcd == cur_ide)
{
WriteMakeVar("mk_COptionsOSGLU");
} else {
WriteMakeVar("mk_COptions");
}
if (gbk_apifam_xwn == gbo_apifam) {
#if 0
if (gbk_targfam_fbsd == gbo_targfam) {
WriteCStrToDestFile(" -I/usr/local/include");
/*
this is location in latest PC-BSD,
but in old PC-BSD need
/usr/X11R6/include/
and in latest PC-BSD
/usr/X11R6/ links to /usr/local/
so just use old location.
*/
}
#endif
if ((gbk_ide_xcd == cur_ide)
|| (gbk_targfam_fbsd == gbo_targfam)
|| (gbk_targfam_obsd == gbo_targfam)
|| (gbk_targfam_oind == gbo_targfam))
{
WriteCStrToDestFile(" -I/usr/X11R6/include/");
} else if (gbk_targfam_nbsd == gbo_targfam) {
WriteCStrToDestFile(" -I/usr/X11R7/include/");
} else if (gbk_targfam_dbsd == gbo_targfam) {
WriteCStrToDestFile(" -I/usr/pkg/include/");
} else if (gbk_targfam_minx == gbo_targfam) {
WriteCStrToDestFile(
" -I/usr/pkg/X11R6/include/");
}
} else if (gbk_apifam_sdl == gbo_apifam) {
if (gbk_targfam_mach == gbo_targfam) {
WriteCStrToDestFile(" -I/usr/local/include/"
" -D_GNU_SOURCE=1 -D_THREAD_SAFE");
}
} else if (gbk_apifam_sd2 == gbo_apifam) {
if (gbk_targfam_mach == gbo_targfam) {
WriteCStrToDestFile(
" -D_GNU_SOURCE=1 -D_THREAD_SAFE");
}
} else if (gbk_apifam_nds == gbo_apifam) {
WriteCStrToDestFile(
" -I$(DEVKITPRO)/libnds/include");
} else if (gbk_apifam_gtk == gbo_apifam) {
WriteCStrToDestFile(
" `pkg-config --cflags gtk+-2.0`");
}
}
break;
case gbk_ide_msv:
WriteCompileCExec();
WritePathArgInMakeCmnd(psrc);
WriteSpaceToDestFile();
WriteMakeVar("mk_COptions");
break;
case gbk_ide_lcc:
WriteCompileCExec();
WritePathArgInMakeCmnd(psrc);
WriteCStrToDestFile(" -Fo");
pobj();
WriteSpaceToDestFile();
WriteMakeVar("mk_COptions");
break;
case gbk_ide_dmc:
WriteCompileCExec();
WritePathArgInMakeCmnd(psrc);
WriteCStrToDestFile(" -o");
pobj();
WriteSpaceToDestFile();
WriteMakeVar("mk_COptions");
break;
case gbk_ide_plc:
WriteCompileCExec();
WritePathArgInMakeCmnd(psrc);
WriteCStrToDestFile(" -Fo");
WriteQuoteToDestFile();
pobj();
WriteQuoteToDestFile();
WriteSpaceToDestFile();
WriteMakeVar("mk_COptions");
break;
default:
break;
}
WriteEndDestFileLn();
}