how do you compile using mingw batch file ?

Started by jbk, September 29, 2021, 12:22:55 PM

Previous topic - Next topic

jbk


MrBcx

Try this ... it should work but I haven't tested it

Change

Echo Completed ...

to

IF EXIST %bf%.exe  Echo Completed ...

jbk

hello MrBcx and Robert
using the batch file posted here https://bcxbasiccoders.com/smf/index.php?topic=601.msg2769#msg2769 I can compile console programs using the geany IDE https://www.geany.org/
after installing geany and launching it
1: open a *.bas file
2: from the Build menu select Set Build Commands
3: in the Compile box replace fbc -w all "%f" to "full path to Gc64.bat" "%f"
now you can compile your program by clicking the Compile button, the only problem is that it reports success even when the compilation fails due to errors
perhaps you guys can fix the batch file so that it will not report success when it failed
after a successful compile, you can run your program by clicking on the Execute button

jbk

Hi Robert, I am compiling from the Windows cmd

Robert

Quote from: jbk on September 29, 2021, 12:22:55 PM
I am at a loss here, I want to use jfe to compile via mingw gcc

Hi jbk:

Please be aware that the MinGW gcc C compiler is not able to handle many of the BCX functions which require optional argument capability. All C++ compilers, including MinGW g++ can handle this. LCCWin32 and Pelles C compilers also have optional argument capabilities.

Are you compiling from an MSys2 terminal or are you simply using the compilers from Windows cmd?

MrBcx

JB,

Attached are S42, S71, and S72 from my collection. 

All translate with BCX 777 and compile with Mingw g++  (GCC v12)

I just compiled all 155 console demos with Mingw with no errors, although S155
did throw some overflow warnings ( not a surprise to me )



Mingw is compiling (s00) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s01) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s02) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s03) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s04) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s05) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s06) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s07) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s08) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s09) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s10) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s11) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s12) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s13) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s14) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s15) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s16) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s17) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s18) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s19) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s20) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s21) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s22) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s23) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s24) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s25) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s26) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s27) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s28) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s29) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s30) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s31) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s32) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s33) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s34) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s35) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s36) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s37) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s38) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s39) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s40) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s41) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s42) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s43) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s44) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s45) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s46) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s47) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s48) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s49) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s50) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s51) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s52) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s53) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s54) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s55) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s56) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s57) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s58) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s59) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s60) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s61) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s62) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s63) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s64) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s65) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s66) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s67) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s68) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s69) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s70) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s71) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s72) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s73) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s74) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s75) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s76) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s77) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s78) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s79) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s80) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s81) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s82) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s83) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s84) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s85) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s86) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s87) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s88) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s89) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s90) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s91) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s92) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s93) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s94) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s95) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s96) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s97) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s98) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s99) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s100) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s101) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s102) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s103) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s104) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s105) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s106) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s107) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s108) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s109) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s110) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s111) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s112) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s113) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s114) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s115) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s116) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s117) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s118) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s119) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s120) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s121) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s122) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s123) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s124) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s125) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s126) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s127) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s128) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s129) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s130) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s131) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s132) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s133) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s134) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s135) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s136) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s137) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s138) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s139) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s140) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s141) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s142) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s143) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s144) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s145) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s146) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s147) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s148) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s149) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s150) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s151) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s152) as a 32-bit CONSOLE app : Completed in 3 seconds

Mingw is compiling (s153) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s154) as a 32-bit CONSOLE app : Completed in 2 seconds

Mingw is compiling (s155) as a 32-bit CONSOLE app : Completed in s155.c:282:3:
warning: floating constant exceeds range of 'double' [-Woverflow]
  282 |   A1=1.23456789123456789E800;
      |   ^~
s155.c:283:3: warning: floating constant exceeds range of 'double' [-Woverflow]
  283 |   A2=2.34567890234567890E800;
      |   ^~
s155.c:300:3: warning: floating constant exceeds range of 'double' [-Woverflow]
  300 |   A=1.23456789123456789E800;
      |   ^
2 seconds

Press any key to continue .



jbk

#7
S42 failed to compile

S42.c:287:40: error: invalid conversion from 'int*' to 'LPDWORD' {aka 'long unsigned int*'} [-fpermissive]
  287 |   WriteFile(hConsole,A,(int)strlen(A), &ret,NULL);
      |                                        ^~~~
      |                                        |
      |                                        int*
In file included from c:\msys64\mingw32\i686-w64-mingw32\include\winbase.h:18,
                 from c:\msys64\mingw32\i686-w64-mingw32\include\windows.h:70,
                 from S42.c:9:

S71 failed

S71.c: In function 'void SetClipBoard(char*)':
S71.c:368:16: error: invalid conversion from 'LPVOID' {aka 'void*'} to 'LPSTR' {aka 'char*'} [-fpermissive]
  368 |   ns=GlobalLock(nd);
      |      ~~~~~~~~~~^~~~
      |                |
      |                LPVOID {aka void*}

S72 failed

S72.c: In function 'char* ExeName()':
S72.c:230:21: error: invalid conversion from 'HANDLE' {aka 'void*'} to 'HMODULE' {aka 'HINSTANCE__*'} [-fpermissive]
  230 |   GetModuleFileName(hModule,Buffer,256);
      |                     ^~~~~~~
      |                     |
      |                     HANDLE {aka void*}
In file included from c:\msys64\mingw32\i686-w64-mingw32\include\winbase.h:24,
                 from c:\msys64\mingw32\i686-w64-mingw32\include\windows.h:70,
                 from S72.c:9:
c:\msys64\mingw32\i686-w64-mingw32\include\libloaderapi.h:154:55: note:   initializing argument 1 of 'DWORD GetModuleFileNameA(HMODULE, LPSTR, DWORD)'
  154 |   WINBASEAPI DWORD WINAPI GetModuleFileNameA (HMODULE hModule, LPSTR lpFilename, DWORD nSize);
      |                                               ~~~~~~~~^~~~~~~

BC fails to translate S76

BCX BASIC to C/C++ Translator (c) 1999-2021 by Kevin Diggins
Version 7.7.7 (09/28/2021) Built with LLVM-CLANG for 32-bit Windows Systems
Error!
S76.Bas
'private' can only be used with C++. at line 7 in Module: S76.Bas
Original line
PRIVATE CONST ONE = 1
==============
Current Tokens
==============
  1 PRIVATE
  2 CONST
  3 ONE
  4 =
  5 1
===============
Original Tokens
===============
  1 PRIVATE
  2 CONST
  3 ONE
  4 =
  5 1

S79 fails

S79.c: In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)':
S79.c:221:34: error: invalid conversion from 'HGDIOBJ' {aka 'void*'} to 'HBRUSH' {aka 'HBRUSH__*'} [-fpermissive]
  221 |   wc.hbrBackground=GetStockObject(WHITE_BRUSH);
      |                    ~~~~~~~~~~~~~~^~~~~~~~~~~~~
      |                                  |
      |                                  HGDIOBJ {aka void*}
S79.c: In function 'void CenterWindow(HANDLE)':
S79.c:289:17: error: invalid conversion from 'HANDLE' {aka 'void*'} to 'HWND' {aka 'HWND__*'} [-fpermissive]
  289 |   GetWindowRect(hWnd, &wRect);
      |                 ^~~~
      |                 |
      |                 HANDLE {aka void*}
In file included from c:\msys64\mingw32\i686-w64-mingw32\include\windows.h:72,
                 from S79.c:9:
c:\msys64\mingw32\i686-w64-mingw32\include\winuser.h:3498:48: note:   initializing argument 1 of 'WINBOOL GetWindowRect(HWND, LPRECT)'
3498 |   WINUSERAPI WINBOOL WINAPI GetWindowRect(HWND hWnd,LPRECT lpRect);
      |                                           ~~~~~^~~~
S79.c:292:16: error: invalid conversion from 'HANDLE' {aka 'void*'} to 'HWND' {aka 'HWND__*'} [-fpermissive]
  292 |   SetWindowPos(hWnd,NULL,x,y,0,0,SWP_NOSIZE|SWP_NOZORDER);
      |                ^~~~
      |                |
      |                HANDLE {aka void*}
In file included from c:\msys64\mingw32\i686-w64-mingw32\include\windows.h:72,
                 from S79.c:9:
c:\msys64\mingw32\i686-w64-mingw32\include\winuser.h:2215:48: note:   initializing argument 1 of 'WINBOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT)'
2215 |   WINUSERAPI WINBOOL WINAPI SetWindowPos (HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
      |                                           ~~~~~^~~~

S85 fails

S85.c: In function 'void ToggleFullScreen()':
S85.c:229:40: error: too many arguments to function
  229 |       GetConsoleDisplayMode( &dwOldMode);
      |                                        ^
S85.c:230:47: error: too many arguments to function
  230 |       SetConsoleDisplayMode(hOut,1^dwOldMode,0);
      |                                               ^

jbk

#6
right MrBCX, however I wanted to have drag&drop capability and after about 10 minutes of trial & error I managed to convince Gc32.bat to do just that
I don't know why IF EXIST %~n1.c   GOTO CFILE didn't work but assigning %~n1 to a variable and then using that variable worked

@echo off
setlocal
rem C:\UTILS\TIMING.exe
@set LIB=
@set INCLUDE=

SET PATH=C:\msys64\mingw32\bin;%PATH%
SET INCLUDE=C:\msys64\mingw32\include;C:\MinGW\include\sys
SET LIB=C:\msys64\mingw32\i686-w64-mingw32\lib

BC %1 -c
set bf=%~n1
IF EXIST %bf%.exe del %bf%.exe
IF EXIST %bf%.c   GOTO CFILE
IF EXIST %bf%.cpp GOTO CPPFILE
GOTO USAGE


:CFILE
SET FLAGS=  -m32  -s -Wno-write-strings -Wno-deprecated -fms-extensions  -O2 -std=c++17 
SET LIBS= -lshell32 -lcomctl32 -lcomdlg32 -lmsimg32 -lole32 -loleaut32 -luser32 -lgdi32 -lkernel32 -ladvapi32  -lurl -limagehlp -lws2_32 -lwinmm -lwininet  -lurlmon
ECHO Compiling %bf% with MingW32
g++ %FLAGS%   %bf%.c -o"%bf%.exe" %LIBS%       %2 %3 %4 %5 %6 %7 %8 %9
Echo Completed ...
GOTO done

:CPPFILE
SET FLAGS=  -m32  -s -Wno-write-strings -Wno-deprecated -fms-extensions  -ofast  -std=c++17
SET LIBS= -lshell32 -lcomctl32 -lcomdlg32 -lmsimg32 -lole32 -loleaut32 -luser32 -lgdi32 -lkernel32 -ladvapi32  -lurl -limagehlp -lws2_32 -lwinmm -lwininet  -lurlmon
ECHO Compiling %bf% with MingW32
g++ %FLAGS%   %bf%.cpp -o"%bf%.exe" %LIBS%       %2 %3 %4 %5 %6 %7 %8 %9
IF EXIST %bf%.exe  Echo Completed ...
GOTO done

:USAGE

ECHO **************************************************************
ECHO  MingW: GC32  Arg2 Arg3 Arg4 Arg5 Arg6 Arg7 Arg8 Arg9
ECHO  Note:  Arg2 - Arg9 can be .a and .o files (lib and obj files)
ECHO  This batch file is used for compiling 64-bit console programs
ECHO **************************************************************
:done

@SET FLAGS=
@set LIB=
@set INCLUDE=
endlocal
rem C:\UTILS\TIMING.exe

I don't recognize -ofast as a gcc or g++ option, I replaced it with -O2 and S40.bas went from 0.28 seconds to 0.08 seconds

MrBcx

Quote from: jbk on September 29, 2021, 03:18:22 PM
I got it now, first translate with BC and then compile with the batch file :)

Correct ... batch files are great time savers.  I have separate batch files for every compiler
and for every file that I want to produce -- 32 bit, 64 bit, console mode, GUI, and DLL.  I have batch
files that CALL batch files that translate and compile entire folders of projects with one click.  That
makes regression testing dead simple.

You can write a batch file that takes a BASIC file as its input then translate and compile it.  All of
my GUI and DLL demos and most of my projects include a BUILD.bat that does just that.  I prefer
keeping my batch files simple and granular, rather than requiring a lot of arguments.  Others go the
other way - they want fewer batch files but their batch files are more complex and require more
care and understanding when using them.  To each, their own ...

jbk

I got it now, first translate with BC and then compile with the batch file :)

jbk

I am not a batch file expert and for a non-expert a batch file can look quite cryptic, when i did Gc32 S00.bas I would get
Quote
**************************************************************
MingW: GC32  Arg2 Arg3 Arg4 Arg5 Arg6 Arg7 Arg8 Arg9
Note:  Arg2 - Arg9 can be .a and .o files (lib and obj files)
This batch file is used for compiling 64-bit console programs
**************************************************************
clear as mud

MrBcx

This is how I work:

I have a folder named C:\bat

I have a folder named C:\Mingw
I have a folder named C:|Pellesc
I have a folder named C:\Lcc
I have a folder named C:\Clang
I have a folder named C:|Embarcadero
I have a folder named C:\VS2015

All those folders are in my Windows PATH.
That allows me to open a Dos prompt in any folder and run any batch file that I want.

For example:

C:\Bc>bc bc

BCX BASIC to C/C++ Translator (c) 1999-2021 by Kevin Diggins
Version 7.7.7 (09/28/2021) Built with LLVM-CLANG for 64-bit Windows Systems
[Lines In: 32859] [Lines Out: 35938] [Statements: 29388] [Time: 0.79 Sec's]
BCX translated [Bc.Bas] to [Bc.C] for a C Compiler

C:\Bc>gc32 bc
Mingw is compiling (bc) as a 32-bit CONSOLE app : Completed in 22 seconds

C:\Bc>


There is no magic involved ...

jbk

I am at a loss here, I want to use jfe to compile via mingw gcc
it seem that jfe calls _Lcall.bat so I renamed the mingw bat file Gc32.bat to _Lcall.bat but I can't get jfe to compile anything, all I get is
Lcall.Bat C:\Users\JBK\Documents\BCX\Con_Demo\S00
I edited the paths to where mingw32 is located
Gc32.bat renamed to _Lcall.bat

@echo off
setlocal
rem C:\UTILS\TIMING.exe
@set LIB=
@set INCLUDE=

SET PATH=C:\msys64\mingw32\bin;%PATH%
SET INCLUDE=C:\msys64\mingw32\include;C:\msys64\mingw32\i686-w64-mingw32\include\sys
SET LIB=C:\msys64\mingw32\i686-w64-mingw32\lib

IF EXIST %1.c   GOTO CFILE
IF EXIST %1.cpp GOTO CPPFILE
GOTO USAGE


:CFILE
SET FLAGS=  -m32  -s -Wno-write-strings -Wno-deprecated -fms-extensions  -ofast -std=c++17 
SET LIBS= -lshell32 -lcomctl32 -lcomdlg32 -lmsimg32 -lole32 -loleaut32 -luser32 -lgdi32 -lkernel32 -ladvapi32  -lurl -limagehlp -lws2_32 -lwinmm -lwininet  -lurlmon
ECHO Compiling %1 with MingW32
g++ %FLAGS%   %1.c -o"%1.exe" %LIBS%       %2 %3 %4 %5 %6 %7 %8 %9
Echo Completed ...
GOTO done

:CPPFILE
SET FLAGS=  -m32  -s -Wno-write-strings -Wno-deprecated -fms-extensions  -ofast  -std=c++17
SET LIBS= -lshell32 -lcomctl32 -lcomdlg32 -lmsimg32 -lole32 -loleaut32 -luser32 -lgdi32 -lkernel32 -ladvapi32  -lurl -limagehlp -lws2_32 -lwinmm -lwininet  -lurlmon
ECHO Compiling %1 with MingW32
g++ %FLAGS%   %1.cpp -o"%1.exe" %LIBS%       %2 %3 %4 %5 %6 %7 %8 %9
Echo Completed ...
GOTO done

:USAGE

ECHO **************************************************************
ECHO  MingW: GC32  Arg2 Arg3 Arg4 Arg5 Arg6 Arg7 Arg8 Arg9
ECHO  Note:  Arg2 - Arg9 can be .a and .o files (lib and obj files)
ECHO  This batch file is used for compiling 64-bit console programs
ECHO **************************************************************
:done

@SET FLAGS=
@set LIB=
@set INCLUDE=
endlocal
rem C:\UTILS\TIMING.exe

how would I use the batch file directly ?