From 68e9856b4909e73d96e43e273de3519ce72ae77d Mon Sep 17 00:00:00 2001 From: InvisibleUp Date: Tue, 3 Mar 2020 12:59:42 -0500 Subject: [PATCH] Fix build support for Linux w/ X11 and ALSA --- Makefile | 22 +++---- src/HW/SOUND/SGLUALSA.h | 3 + src/UI/UNIX/OSGLUXWN.c | 142 ++++++++++------------------------------ 3 files changed, 49 insertions(+), 118 deletions(-) diff --git a/Makefile b/Makefile index 17cee95..dee987c 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,13 @@ # Makefile # Currently only builds Mac Plus emulator for Windows x64 -mk_COptionsCommon = -Wall -Wmissing-prototypes -Wno-uninitialized -Wundef -Wstrict-prototypes -Icfg/ -Isrc/ -mk_COptionsOSGLU = $(mk_COptionsCommon) -O2 -mk_COptions = $(mk_COptionsCommon) -O2 +CC := gcc +CCFLAGS := -O2 -Wall -Wmissing-prototypes -Wno-uninitialized -Wundef -Wstrict-prototypes -Icfg/ -Isrc/ -.PHONY: build clean +.PHONY: linux windows clean -build : minivmac.exe - -SrcFiles = \ +SrcFiles := \ src/PROGMAIN.c \ - src/UI/WIN32/OSGLUWIN.c \ src/GLOBGLUE.c \ src/HW/M68K/M68KITAB.c \ src/HW/M68K/MINEM68K.c \ @@ -28,11 +24,15 @@ SrcFiles = \ src/HW/SOUND/SNDEMDEV.c \ src/UTIL/DATE2SEC.c \ -minivmac.exe : +windows : mkdir -p "bld/" windres -i "src/UI/WIN32/main.rc" --input-format=rc -o "bld/main.res" -O coff --include-dir "src/" - gcc -o "minivmac.exe" $(SrcFiles) "bld/main.res" $(mk_COptions) \ - -mwindows -lwinmm -lole32 -luuid + $(CC) -o "minivmac.exe" $(SrcFiles) "src/UI/WIN32/OSGLUWIN.c" \ + "bld/main.res" $(CCFLAGS) -mwindows -lwinmm -lole32 -luuid + +linux : + mkdir -p "bld/" + $(CC) -o "minivmac.exe" $(SrcFiles) "src/UI/UNIX/OSGLUXWN.c" $(CCFLAGS) -lX11 -ldl clean : rm -r "bld/" diff --git a/src/HW/SOUND/SGLUALSA.h b/src/HW/SOUND/SGLUALSA.h index 1a8cbe0..964509a 100644 --- a/src/HW/SOUND/SGLUALSA.h +++ b/src/HW/SOUND/SGLUALSA.h @@ -20,6 +20,9 @@ ALSA sound support by Stephan Kochen. */ +#include +#include + #ifndef RaspbianWorkAround #define RaspbianWorkAround 0 #endif diff --git a/src/UI/UNIX/OSGLUXWN.c b/src/UI/UNIX/OSGLUXWN.c index 941f592..35b6d9f 100644 --- a/src/UI/UNIX/OSGLUXWN.c +++ b/src/UI/UNIX/OSGLUXWN.c @@ -35,12 +35,25 @@ looking at included examples, one by Paul Sheer. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "CNFGGLOB.h" #include "CNFGRAPI.h" #include "SYSDEPNS.h" #include "UTIL/ENDIANAC.h" - #include "UI/MYOSGLUE.h" - #include "STRCONST.h" /* --- some simple utilities --- */ @@ -60,7 +73,7 @@ GLOBALOSGLUPROC MoveBytes(anyp srcPtr, anyp destPtr, int32_t byteCount) LOCALVAR char *d_arg = NULL; LOCALVAR char *n_arg = NULL; -#if CanGetAppPath +#ifdef CanGetAppPath LOCALVAR char *app_parent = NULL; LOCALVAR char *app_name = NULL; #endif @@ -94,7 +107,7 @@ LOCALFUNC tMacErr ChildPath(char *x, char *y, char **r) return err; } -#if UseActvFile || IncludeSonyNew +#if IncludeSonyNew LOCALFUNC tMacErr FindOrMakeChild(char *x, char *y, char **r) { tMacErr err; @@ -309,9 +322,7 @@ LOCALFUNC bool NetSupportedContains(Atom x) #define WantColorTransValid 1 #include "UI/COMOSGLU.h" - -#include "UTILS/PBUFSTDC.h" - +#include "UTIL/PBUFSTDC.h" #include "UI/CONTROLM.h" /* --- text translation --- */ @@ -779,7 +790,7 @@ LOCALFUNC bool Sony_Insert1a(char *drivepath, bool silentfail) LOCALFUNC bool Sony_Insert2(char *s) { char *d = -#if CanGetAppPath +#ifdef CanGetAppPath (NULL == d_arg) ? app_parent : #endif d_arg; @@ -875,7 +886,7 @@ LOCALPROC MakeNewDisk0(uint32_t L, char *drivepath) LOCALPROC MakeNewDisk(uint32_t L, char *drivename) { char *d = -#if CanGetAppPath +#ifdef CanGetAppPath (NULL == d_arg) ? app_parent : #endif d_arg; @@ -979,12 +990,12 @@ LOCALFUNC tMacErr LoadMacRomFromHome(void) return err; } -#if CanGetAppPath +#ifdef CanGetAppPath LOCALFUNC tMacErr LoadMacRomFromAppPar(void) { tMacErr err; char *d = -#if CanGetAppPath +#ifdef CanGetAppPath (NULL == d_arg) ? app_parent : #endif d_arg; @@ -1012,7 +1023,7 @@ LOCALFUNC bool LoadMacRom(void) if ((NULL == rom_path) || (mnvm_fnfErr == (err = LoadMacRomFrom(rom_path)))) -#if CanGetAppPath +#ifdef CanGetAppPath if (mnvm_fnfErr == (err = LoadMacRomFromAppPar())) #endif if (mnvm_fnfErr == (err = LoadMacRomFromHome())) @@ -1023,90 +1034,6 @@ LOCALFUNC bool LoadMacRom(void) return true; /* keep launching Mini vMac, regardless */ } -#if UseActvFile - -#define ActvCodeFileName "act_1" - -LOCALFUNC tMacErr ActvCodeFileLoad(uint8_t * p) -{ - tMacErr err; - char *s; - char *t = NULL; - char *t2 = NULL; - char *t3 = NULL; - - if (mnvm_noErr == (err = FindUserHomeFolder(&s))) - if (mnvm_noErr == (err = ChildPath(s, ".gryphel", &t))) - if (mnvm_noErr == (err = ChildPath(t, "mnvm_act", &t2))) - if (mnvm_noErr == (err = ChildPath(t2, ActvCodeFileName, &t3))) - { - FILE *Actv_File; - int File_Size; - - Actv_File = fopen(t3, "rb"); - if (NULL == Actv_File) { - err = mnvm_fnfErr; - } else { - File_Size = fread(p, 1, ActvCodeFileLen, Actv_File); - if (File_Size != ActvCodeFileLen) { - if (feof(Actv_File)) { - err = mnvm_eofErr; - } else { - err = mnvm_miscErr; - } - } else { - err = mnvm_noErr; - } - fclose(Actv_File); - } - } - - MayFree(t3); - MayFree(t2); - MayFree(t); - - return err; -} - -LOCALFUNC tMacErr ActvCodeFileSave(uint8_t * p) -{ - tMacErr err; - char *s; - char *t = NULL; - char *t2 = NULL; - char *t3 = NULL; - - if (mnvm_noErr == (err = FindUserHomeFolder(&s))) - if (mnvm_noErr == (err = FindOrMakeChild(s, ".gryphel", &t))) - if (mnvm_noErr == (err = FindOrMakeChild(t, "mnvm_act", &t2))) - if (mnvm_noErr == (err = ChildPath(t2, ActvCodeFileName, &t3))) - { - FILE *Actv_File; - int File_Size; - - Actv_File = fopen(t3, "wb+"); - if (NULL == Actv_File) { - err = mnvm_fnfErr; - } else { - File_Size = fwrite(p, 1, ActvCodeFileLen, Actv_File); - if (File_Size != ActvCodeFileLen) { - err = mnvm_miscErr; - } else { - err = mnvm_noErr; - } - fclose(Actv_File); - } - } - - MayFree(t3); - MayFree(t2); - MayFree(t); - - return err; -} - -#endif /* UseActvFile */ - /* --- video out --- */ LOCALVAR Window main_wind = 0; @@ -2512,7 +2439,8 @@ LOCALPROC Sound_SecondNotify0(void) #define SOUND_SAMPLERATE 22255 /* = round(7833600 * 2 / 704) */ -#include "SOUNDGLU.h" +//#include "SOUNDGLU.h" +#include "HW/SOUND/SGLUALSA.h" #endif @@ -3627,7 +3555,7 @@ LOCALFUNC bool CreateMainWindow(void) } else { char *win_name = (NULL != n_arg) ? n_arg : ( -#if CanGetAppPath +#ifdef CanGetAppPath (NULL != app_name) ? app_name : #endif kStrAppName); @@ -4557,7 +4485,7 @@ LOCALPROC UnallocMemory(void) } } -#if HaveAppPathLink +#ifdef HaveAppPathLink LOCALFUNC bool ReadLink_Alloc(char *path, char **r) { /* @@ -4612,7 +4540,7 @@ label_retry: } #endif -#if HaveSysctlPath +#ifdef HaveSysctlPath LOCALFUNC bool ReadKernProcPathname(char **r) { size_t s_alloc; @@ -4652,7 +4580,7 @@ LOCALFUNC bool ReadKernProcPathname(char **r) } #endif -#if CanGetAppPath +#ifdef CanGetAppPath LOCALFUNC bool Path2ParentAndName(char *path, char **parent, char **name) { @@ -4696,16 +4624,16 @@ LOCALFUNC bool Path2ParentAndName(char *path, } #endif -#if CanGetAppPath +#ifdef CanGetAppPath LOCALFUNC bool InitWhereAmI(void) { char *s; if (! -#if HaveAppPathLink +#ifdef HaveAppPathLink ReadLink_Alloc(TheAppPathLink, &s) #endif -#if HaveSysctlPath +#ifdef HaveSysctlPath ReadKernProcPathname(&s) #endif ) @@ -4729,7 +4657,7 @@ LOCALFUNC bool InitWhereAmI(void) } #endif -#if CanGetAppPath +#ifdef CanGetAppPath LOCALPROC UninitWhereAmI(void) { MayFree(app_parent); @@ -4740,7 +4668,7 @@ LOCALPROC UninitWhereAmI(void) LOCALFUNC bool InitOSGLU(void) { if (AllocMemory()) -#if CanGetAppPath +#ifdef CanGetAppPath if (InitWhereAmI()) #endif #if dbglog_HAVE @@ -4810,7 +4738,7 @@ LOCALPROC UnInitOSGLU(void) dbglog_close(); #endif -#if CanGetAppPath +#ifdef CanGetAppPath UninitWhereAmI(); #endif UnallocMemory();