---- Le lun., 21 juin 2021 18:40:33 -0400 Eric Auer <mailto:[email protected]> 
écrit ----

[...]

>>  Explicitly set -std=gnu89 and -std=gnu++98 for DJGPP compilation 

>> 
>> Versions 5.00 and above of GCC default to -std=gnu11 instead of -std=gnu89.  
>> This breaks linking of Allegro 4.2 on newer GCC systems, because the new 
>> standard changes the meaning of `static inline` functions. 
>> 
>> Explicitly setting -std=gnu89 in CFLAGS (and again for `asmdef.exe`) uses 
>> the old-style inline rules and allows linking to complete. 
>> 
>> Similarly, there is a linking issue with cpptest.cpp that is avoided when 
>> specifically pinning the C++ version to gnu++98. 
 
>That sounds useful, so how short does your list of warnings get after 
>a make clean, editing the C_STD and CXX_STD in your (Allegro) makefile, 
>and trying again? Possibly after reverting your kraptor source edits? 
 
>Regards, Eric




You seems to expect things to go better, but they really go more wrong.

First, I need to recompile Allegro lib, where before I was using the 
precompiled binaries on DJGPP mirror.



So I downloaded: 
https://codeload.github.com/liballeg/allegro5/zip/refs/heads/4.2



And under dosemu, doing 'make' I got: free: memory fooled (followed by an 
excption dump).



So I will concentrate on Linux where things get a bit clearer now what happens.



So I extracted the zip file giving the current state of branch 4.2 (latest 
supporting officially DOS) of Allegro5.



So I go there:

paul@kasparno:~/Téléchargements/allegro5-4.2$ ls

aclocal.m4      demo        makefile       makefile.lst  misc         tests

allegro.cfg     docs        makefile.all   makefile.mgw  modules.lst  todo.txt

allegro-config  examples    makefile.bcc   makefile.osx  obj          tools

autom4te.cache  fix.bat     makefile.be    makefile.qnx  resource     xmake.sh

config.log      fix.sh      makefile.dj    makefile.tst  setup

config.status   include     makefile.dmc   makefile.vc   src

configure       indent.pro  makefile.in    makefile.ver  stamp-h

configure.in    lib         makefile.info  makefile.wat  stamp-h.in

paul@kasparno:~/Téléchargements/allegro5-4.2$ 

.

paul@kasparno:~/Téléchargements/allegro5-4.2$ ./fix.sh 



Usage: ./fix.sh <platform> [--quick|--dtou|--utod|--utom|--mtou]



Where platform is one of: bcc32, beos, djgpp, mingw, qnx, unix

mac, macosx, macosx-universal and watcom.

The --quick parameter turns off text file conversion, --dtou converts from

DOS/Win32 format to Unix, --utod converts from Unix to DOS/Win32 format,

--utom converts from Unix to Macintosh format and --mtou converts from

Macintosh to Unix format. If no parameter is specified --quick is assumed.



paul@kasparno:~/Téléchargements/allegro5-4.2$ ./fix.sh unix

Configuring Allegro for Unix ...

Done!



paul@kasparno:~/Téléchargements/allegro5-4.2$ LANG=C make

make: *** No rule to make target 'lib/unix/liballeg-4.2.4.so', needed by 'lib'. 
 Stop.



paul@kasparno:~/Téléchargements/allegro5-4.2$ ./fix.sh djgpp

Configuring Allegro for DOS (djgpp) ...

Done!

paul@kasparno:~/Téléchargements/allegro5-4.2$ LANG=C make

makefile.all:248: *** recipe commences before first target.  Stop.

paul@kasparno:~/Téléchargements/allegro5-4.2$ 



So, it does give the line number where problems begin:

paul@kasparno:~/Téléchargements/allegro5-4.2$ cat makefile

# generated by fix.sh

MAKEFILE_INC = makefile.dj

include makefile.all



In makefile.all, I can see the problem: (strange... the problem seems to fix by 
pasting here, but basically

 the functions are prefixed by 3 spaces, rather than a tab)... yeah I took it 
directly from makefile.all because mousepad

does not show me makefile:



clean:

ifdef UNIX_TOOLS

    -rm $(RM_OPTS) $(OBJ_CLEAN_FILES)

    -rm $(RM_OPTS) $(OTHER_CLEAN_FILES)

else

   define RM_CLEAN

      $(foreach file, $(wildcard $(OBJ_CLEAN_FILES)), -del $(subst /,\,$(file))

      )

      $(foreach file, $(wildcard $(OTHER_CLEAN_FILES)), -del $(subst 
/,\,$(file))

      )

   endef

    -$(RM_CLEAN)

endif



distclean: clean

ifdef UNIX_TOOLS

    -rm $(RM_OPTS) $(DISTCLEAN_FILES)

else

   define RM_DISTCLEAN

      $(foreach file, $(wildcard $(DISTCLEAN_FILES)), -del $(subst /,\,$(file))

      )

   endef

    -$(RM_DISTCLEAN)

endif



So it is about there I am now.
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to