uvmac/setup/WRCNFGAP.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

434 lines
13 KiB
C

/*
WRCNFGAP.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.
*/
/*
WRite "CNFGrAPi.h"
*/
#include "COREDEFS.h"
LOCALPROC WriteOSXLocalTalkCNFGRAPI(void)
{
WriteDestFileLn("#include <unistd.h>");
WriteDestFileLn("#include <netinet/in.h>");
WriteDestFileLn("#include <sys/socket.h>");
WriteDestFileLn("#include <net/if.h>");
WriteDestFileLn("#include <net/route.h>");
WriteDestFileLn("#include <net/if_dl.h>");
WriteDestFileLn("#include <arpa/inet.h>");
WriteDestFileLn("#include <sys/select.h>");
WriteDestFileLn("#include <sys/ioctl.h>");
WriteDestFileLn("#include <sys/sysctl.h>");
WriteDestFileLn("#include <net/bpf.h>");
}
LOCALPROC WriteCommonCNFGRAPIContents(void)
{
WriteDestFileLn("/*");
++DestFileIndent;
WriteDestFileLn(
"Configuration options used by platform specific code.");
WriteConfigurationWarning();
--DestFileIndent;
WriteDestFileLn("*/");
if (gbo_TstCompErr) {
WriteDestFileLn("#error \"Testing Compile Time Error\"");
}
if (gbk_ide_msv == cur_ide) {
if (ide_vers >= 8000) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define _CRT_SECURE_NO_DEPRECATE 1");
}
WriteBlankLineToDestFile();
WriteDestFileLn(
"/* ignore warning generated by system includes */");
if (ide_vers >= 6000) {
WriteDestFileLn("#pragma warning(push)");
}
WriteDestFileLn("#pragma warning(disable : 4201 4115 4214)");
}
WriteBlankLineToDestFile();
if (gbk_apifam_osx == gbo_apifam) {
if (gbk_targfam_carb == gbo_targfam) {
/* kIdeMW8 or kIdeMPW3_6_a1 */
if (gbk_ide_mw8 == cur_ide) {
WriteDestFileLn("#include <MacHeadersCarbon.h>");
} else
{
WriteDestFileLn("#include <Carbon.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
#if UseOpenGLinOSX
WriteDestFileLn("#include <agl.h>");
#endif
}
WriteDestFileLn("#define UsingCarbonLib 1");
} else {
/* kIdeMW8 or kIdeBashGcc or kIdeAPB */
if (gbk_ide_mw8 == cur_ide) {
WriteDestFileLn("#include <MSL MacHeadersMach-O.h>");
}
WriteDestFileLn("#include <Carbon/Carbon.h>");
#if UseOpenGLinOSX
WriteDestFileLn("#include <AGL/agl.h>");
#endif
#if UseMachinOSX
WriteDestFileLn("#include <mach/mach_interface.h>");
WriteDestFileLn("#include <mach/mach_port.h>");
#endif
WriteDestFileLn("#include <unistd.h>");
/* for nanosleep */
if (WantLocalTalk) {
WriteOSXLocalTalkCNFGRAPI();
}
}
} else if (gbk_apifam_cco == gbo_apifam) {
WriteDestFileLn("#import <Cocoa/Cocoa.h>");
#if MayUseSound
if (MySoundEnabled) {
WriteDestFileLn("#include <CoreAudio/CoreAudio.h>");
WriteDestFileLn("#include <AudioUnit/AudioUnit.h>");
}
#endif
#if UseOpenGLinOSX
WriteDestFileLn("#include <OpenGL/gl.h>");
#endif
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
WriteDestFileLn("#include <sys/param.h>");
WriteDestFileLn("#include <sys/time.h>");
if (WantUnTranslocate) {
WriteDestFileLn("#include <dlfcn.h>");
}
if (WantLocalTalk) {
WriteOSXLocalTalkCNFGRAPI();
}
} else if (gbk_apifam_xwn == gbo_apifam) {
blnr HaveAppPathLink = falseblnr;
blnr HaveSysctlPath = (gbk_targfam_fbsd == gbo_targfam);
switch (gbo_targfam) {
case gbk_targfam_linx:
case gbk_targfam_nbsd:
case gbk_targfam_dbsd:
case gbk_targfam_oind:
HaveAppPathLink = trueblnr;
break;
default:
break;
}
if (gbk_targfam_minx == gbo_targfam) {
WriteDestFileLn(
"/* get nanosleep and gettimeofday. ugh */");
WriteDestFileLn("#define _POSIX_SOURCE 1");
WriteDestFileLn("#define _POSIX_C_SOURCE 200112L");
}
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
WriteDestFileLn("#include <time.h>");
WriteDestFileLn("#include <sys/time.h>");
WriteDestFileLn("#include <sys/times.h>");
WriteDestFileLn("#include <X11/Xlib.h>");
WriteDestFileLn("#include <X11/Xutil.h>");
WriteDestFileLn("#include <X11/keysym.h>");
WriteDestFileLn("#include <X11/keysymdef.h>");
WriteDestFileLn("#include <X11/Xatom.h>");
#if 1
WriteDestFileLn("#include <fcntl.h>");
#endif
/* if (WantActvCode) */ {
/* also now used for export file */
WriteDestFileLn("#include <sys/stat.h>");
}
#if MayUseSound
if ((gbk_sndapi_alsa == gbo_sndapi)
|| (gbk_sndapi_ddsp == gbo_sndapi))
{
WriteDestFileLn("#include <errno.h>");
}
#endif
if (HaveAppPathLink /* for readlink */
#if MayUseSound
|| (gbk_sndapi_ddsp == gbo_sndapi)
#endif
) /* for write */
{
WriteDestFileLn("#include <unistd.h>");
}
if (HaveSysctlPath) {
WriteDestFileLn("#include <sys/sysctl.h>");
}
#if MayUseSound
if (MySoundEnabled) {
switch (gbo_sndapi) {
case gbk_sndapi_alsa:
WriteDestFileLn("#include <dlfcn.h>");
#if 0
WriteDestFileLn("#include <alsa/asoundlib.h>");
#endif
break;
case gbk_sndapi_ddsp:
WriteDestFileLn("#include <sys/ioctl.h>");
if (gbk_targfam_obsd == gbo_targfam) {
WriteDestFileLn("#include <soundcard.h>");
} else {
WriteDestFileLn("#include <sys/soundcard.h>");
}
break;
default:
break;
}
}
#endif
WriteBlankLineToDestFile();
WriteCompCondBool("CanGetAppPath",
HaveAppPathLink || HaveSysctlPath);
WriteCompCondBool("HaveAppPathLink", HaveAppPathLink);
if (HaveAppPathLink) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define TheAppPathLink \"");
switch (gbo_targfam) {
case gbk_targfam_nbsd:
WriteCStrToDestFile("/proc/curproc/exe");
break;
case gbk_targfam_dbsd:
WriteCStrToDestFile("/proc/curproc/file");
break;
case gbk_targfam_oind:
WriteCStrToDestFile("/proc/self/path/a.out");
break;
case gbk_targfam_linx:
default:
WriteCStrToDestFile("/proc/self/exe");
break;
}
WriteCStrToDestFile("\"");
WriteEndDestFileLn();
}
WriteCompCondBool("HaveSysctlPath", HaveSysctlPath);
#if MayUseSound
if (MySoundEnabled) {
if (gbk_sndapi_ddsp == gbo_sndapi) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define AudioDevPath \"");
switch (gbo_targfam) {
case gbk_targfam_nbsd:
case gbk_targfam_obsd:
WriteCStrToDestFile("/dev/audio");
break;
case gbk_targfam_fbsd:
case gbk_targfam_dbsd:
default:
WriteCStrToDestFile("/dev/dsp");
break;
}
WriteCStrToDestFile("\"");
WriteEndDestFileLn();
}
}
#endif
} else if (gbk_apifam_nds == gbo_apifam) {
WriteDestFileLn("#define ARM9 1");
WriteDestFileLn("#include <nds.h>");
WriteDestFileLn("#include <filesystem.h>");
WriteDestFileLn("#include <fat.h>");
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
WriteDestFileLn("#include <time.h>");
WriteDestFileLn("#include <sys/time.h>");
WriteDestFileLn("#include <sys/times.h>");
WriteDestFileLn("#include <fcntl.h>");
WriteDestFileLn("#include <unistd.h>");
} else if (gbk_apifam_gtk == gbo_apifam) {
WriteDestFileLn("#include <gtk/gtk.h>");
WriteDestFileLn("#include <gdk/gdkkeysyms.h>");
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
WriteDestFileLn("#include <time.h>");
WriteDestFileLn("#include <sys/time.h>");
WriteDestFileLn("#include <sys/times.h>");
} else if (gbk_apifam_sdl == gbo_apifam) {
WriteDestFileLn("#include <SDL/SDL.h>");
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
} else if (gbk_apifam_sd2 == gbo_apifam) {
WriteDestFileLn("#include <SDL2/SDL.h>");
WriteDestFileLn("#include <stdio.h>");
WriteDestFileLn("#include <stdlib.h>");
WriteDestFileLn("#include <string.h>");
} else if (gbk_apifam_win == gbo_apifam) {
if ((gbk_ide_mvc == cur_ide)
&& (gbk_targfam_wnce == gbo_targfam))
{
WriteDestFileLn("#define WIN32 1");
WriteDestFileLn("#define _WIN32 1");
WriteDestFileLn("#define WINNT 1");
WriteDestFileLn("#define UNDER_CE 1");
WriteDestFileLn("#define __CEGCC__ 1");
WriteDestFileLn("#define __CEGCC32__ 1");
WriteDestFileLn("#define __MINGW32__ 1");
WriteDestFileLn("#define __MINGW32CE__ 1");
WriteDestFileLn("#define __COREDLL__ 1");
WriteDestFileLn("#define UNICODE 1");
WriteDestFileLn("#define _UNICODE 1");
WriteDestFileLn("#define _M_ARM 1");
WriteBlankLineToDestFile();
}
if (gbk_ide_mw8 == cur_ide) {
WriteDestFileLn("#include <Win32Headers.h>");
} else
{
WriteDestFileLn("#include <windows.h>");
WriteDestFileLn("#include <time.h>");
if (gbk_ide_lcc == cur_ide) {
WriteDestFileLn("#include <shellapi.h>");
WriteDestFileLn("#include <mmsystem.h>");
}
}
WriteDestFileLn("#include <shlobj.h>");
WriteDestFileLn("#include <tchar.h>");
if (gbk_targfam_wnce == gbo_targfam) {
WriteDestFileLn("#include <aygshell.h>");
WriteDestFileLn("#include <commdlg.h>");
}
if (gbk_ide_mvc == cur_ide) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define _tWinMain WinMain");
}
if (gbk_ide_plc == cur_ide) {
WriteDestFileLn("#define _MAX_PATH MAX_PATH");
}
} else {
if (gbk_ide_mw8 == cur_ide) {
WriteDestFileLn("#include <MacHeaders.h>");
WriteDestFileLn("#include <CursorDevices.h>");
WriteDestFileLn("#define ShouldDefineQDGlobals 0");
} else
if (gbk_ide_mpw == cur_ide) {
WriteDestFileLn("#include <MacTypes.h>");
if (gbk_cpufam_68k != gbo_cpufam) {
WriteDestFileLn("#include <MixedMode.h>");
}
WriteDestFileLn("#include <Gestalt.h>");
WriteDestFileLn("#include <MacErrors.h>");
WriteDestFileLn("#include <MacMemory.h>");
WriteDestFileLn("#include <OSUtils.h>");
WriteDestFileLn("#include <QuickdrawText.h>");
WriteDestFileLn("#include <QuickDraw.h>");
if (gbk_cpufam_68k == gbo_cpufam) {
WriteDestFileLn("#include <SegLoad.h>");
}
WriteDestFileLn("#include <IntlResources.h>");
WriteDestFileLn("#include <Events.h>");
WriteDestFileLn("#include <Script.h>");
WriteDestFileLn("#include <Files.h>");
WriteDestFileLn("#include <Resources.h>");
WriteDestFileLn("#include <Fonts.h>");
WriteDestFileLn("#include <TextUtils.h>");
WriteDestFileLn("#include <FixMath.h>");
WriteDestFileLn("#include <ToolUtils.h>");
WriteDestFileLn("#include <Menus.h>");
WriteDestFileLn("#include <Scrap.h>");
WriteDestFileLn("#include <Controls.h>");
WriteDestFileLn("#include <ControlDefinitions.h>");
WriteDestFileLn("#include <AppleEvents.h>");
WriteDestFileLn("#include <Processes.h>");
WriteDestFileLn("#include <EPPC.h>");
WriteDestFileLn("#include <MacWindows.h>");
WriteDestFileLn("#include <TextEdit.h>");
WriteDestFileLn("#include <Dialogs.h>");
WriteDestFileLn("#include <Devices.h>");
WriteDestFileLn("#include <Palettes.h>");
WriteDestFileLn("#include <StandardFile.h>");
WriteDestFileLn("#include <Aliases.h>");
WriteDestFileLn("#include <Folders.h>");
WriteDestFileLn("#include <Balloons.h>");
WriteDestFileLn("#include <DiskInit.h>");
WriteDestFileLn("#include <LowMem.h>");
WriteDestFileLn("#include <Appearance.h>");
WriteDestFileLn("#include <Navigation.h>");
WriteDestFileLn("#include <Sound.h>");
WriteDestFileLn("#include <CursorDevices.h>");
WriteDestFileLn("#include <Traps.h>");
}
}
if ((gbk_ide_msv == cur_ide) && (ide_vers >= 6000)) {
WriteBlankLineToDestFile();
WriteDestFileLn("/* restore warnings */");
WriteDestFileLn("#pragma warning(pop)");
}
WriteBlankLineToDestFile();
if (gbk_cpufam_68k == gbo_cpufam) {
if (gbk_ide_mpw == cur_ide) {
WriteDestFileLn("#define ShouldUnloadDataInit 1");
WriteDestFileLn("#define Windows85APIAvail 0");
WriteDestFileLn("#define NeedLongGlue 1");
}
}
#if MayUseSound
if (MySoundEnabled) {
if (gbk_sndapi_alsa == gbo_sndapi)
if (gbk_cpufam_arm == gbo_cpufam)
{
WriteDestFileLn("#define RaspbianWorkAround 1");
}
}
#endif
if (HaveMacBundleApp) {
WriteDestFileLn("#define MyAppIsBundle 1");
}
if (gbk_apifam_cco == gbo_apifam) {
WriteCompCondBool("WantUnTranslocate",
WantUnTranslocate);
}
if (gbk_apifam_win == gbo_apifam) {
if (WantIconMaster) {
WriteDestFileLn("#define InstallFileIcons 1");
}
}
if ((gbk_apifam_mac == gbo_apifam)
|| (gbk_apifam_osx == gbo_apifam))
{
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kMacCreatorSig ");
WriteSingleQuoteToDestFile();
WriteCStrToDestFile(kMacCreatorSig);
WriteSingleQuoteToDestFile();
WriteEndDestFileLn();
}
}