[AD] Makefile.vc borked

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


I can confirm that the makefile.vc doesn't work.

1.
Error log:
makefile.vc:355: *** extraneous `endef'.  Stop.

it's fixed as here:

define MAKE_LIB
   $(RUNNER) $(MSVC_LINK) @ -nologo $(LFLAGS) -dll -def:lib/msvc/allegro.def -out:$(DLL_NAME) -implib:$(IMPLIB_NAME) $(OBJECTS) $(LIBRARIES)
endef
endif
#endef

2. After that,

obj/msvc/runner.exe E:/MSVS8/VC/bin/cl @ -nologo -DALLEGRO_SRC -W1 -Gd -MD -O2
-GL -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -I. -I./include -Foob
j/msvc/alleg/config.obj -c src/config.c
config.c
src/config.c(1444) : error C2143: syntax error : missing ';' before 'type'
src/config.c(1451) : error C2065: 'in_section' : undeclared identifier
src/config.c(1513) : warning C4090: 'function' : different 'const' qualifiers
make: *** [obj/msvc/alleg/config.obj] Error 2

fixed by flipping the order:

   int in_section;
   prettify_section_name(section, section_name, sizeof(section_name));

(C99 syntax)

3. Next:

obj/msvc/runner.exe E:/MSVS8/VC/bin/cl @ -nologo -W1 -W1 -Gd -MD -O2  -GL -D_CRT
_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -I. -I./include -Foobj/msvc/asm
def.obj -Feobj/msvc/asmdef.exe src/i386/asmdef.c
asmdef.c
asmdef.obj : error LNK2001: unresolved external symbol @__security_check_cookie@
4
asmdef.obj : error LNK2001: unresolved external symbol __imp____iob_func
asmdef.obj : error LNK2001: unresolved external symbol __imp__printf
asmdef.obj : error LNK2001: unresolved external symbol __imp__fopen
asmdef.obj : error LNK2001: unresolved external symbol __imp__fprintf
asmdef.obj : error LNK2001: unresolved external symbol __imp__ferror
asmdef.obj : error LNK2001: unresolved external symbol __imp__fclose
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
obj/msvc/asmdef.exe : fatal error LNK1120: 8 unresolved externals
make: *** [obj/msvc/asmdef.exe] Error 2

Apparently -MD doesn't work here... -MT works fine. :) Please confirm this.

4. misc\fixdll.bat won't work coz WinXP has a sort command in cmd.exe :( I had to change the sort.exe to gnusort.exe to make it work. Check the attached bat file

5. The grand finale:

Compiling Allegro for MSVC, optimised. Please wait...
obj/msvc/runner.exe E:/MSVS8/VC/bin/link @ -nologo -release -LTCG -dll -def:lib/msvc/allegro.def -out:lib/msvc/alleg42.dll -implib:lib/msvc/alleg.lib obj/msvc/alleg/allegro.obj obj/msvc/alleg/blit.obj obj/msvc/alleg/bmp.obj obj/msvc/alleg/clip3d.obj obj/msvc/alleg/clip3df.obj obj/msvc/alleg/colblend.obj obj/msvc/alleg/color.obj obj/msvc/alleg/config.obj obj/msvc/alleg/datafile.obj obj/msvc/alleg/dataregi.obj obj/msvc/alleg/digmid.obj obj/msvc/alleg/dither.obj obj/msvc/alleg/dispsw.obj obj/msvc/alleg/drvlist.obj obj/msvc/alleg/file.obj obj/msvc/alleg/fli.obj obj/msvc/alleg/flood.obj obj/msvc/alleg/font.obj obj/msvc/alleg/fontbios.obj obj/msvc/alleg/fontbmp.obj obj/msvc/alleg/fontdat.obj obj/msvc/alleg/fontgrx.obj obj/msvc/alleg/fonttxt.obj obj/msvc/alleg/fsel.obj obj/msvc/alleg/gfx.obj obj/msvc/alleg/glyph.obj obj/msvc/alleg/graphics.obj obj/msvc/alleg/gsprite.obj obj/msvc/alleg/gui.obj obj/msvc/alleg/guiproc.obj obj/msvc/alleg/inline.obj obj/msvc/alleg/joystick.obj obj/msvc/alleg/keyboard.obj obj/msvc/alleg/lbm.obj obj/msvc/alleg/libc.obj obj/msvc/alleg/lzss.obj obj/msvc/alleg/math.obj obj/msvc/alleg/math3d.obj obj/msvc/alleg/midi.obj obj/msvc/alleg/mixer.obj obj/msvc/alleg/modesel.obj obj/msvc/alleg/mouse.obj obj/msvc/alleg/pcx.obj obj/msvc/alleg/poly3d.obj obj/msvc/alleg/polygon.obj obj/msvc/alleg/quantize.obj obj/msvc/alleg/quat.obj obj/msvc/alleg/readbmp.obj obj/msvc/alleg/readfont.obj obj/msvc/alleg/readsmp.obj obj/msvc/alleg/rle.obj obj/msvc/alleg/rotate.obj obj/msvc/alleg/scene3d.obj obj/msvc/alleg/sound.obj obj/msvc/alleg/spline.obj obj/msvc/alleg/stream.obj obj/msvc/alleg/text.obj obj/msvc/alleg/tga.obj obj/msvc/alleg/timer.obj obj/msvc/alleg/unicode.obj obj/msvc/alleg/vtable.obj obj/msvc/alleg/vtable15.obj obj/msvc/alleg/vtable16.obj obj/msvc/alleg/vtable24.obj obj/msvc/alleg/vtable32.obj obj/msvc/alleg/vtable8.obj obj/msvc/alleg/iblit16.obj obj/msvc/alleg/iblit24.obj obj/msvc/alleg/iblit32.obj obj/msvc/alleg/iblit8.obj obj/msvc/alleg/icpu.obj obj/msvc/alleg/icpus.obj obj/msvc/alleg/icsprite.obj obj/msvc/alleg/igfx15.obj obj/msvc/alleg/igfx16.obj obj/msvc/alleg/igfx24.obj obj/msvc/alleg/igfx32.obj obj/msvc/alleg/igfx8.obj obj/msvc/alleg/imisc.obj obj/msvc/alleg/iscan.obj obj/msvc/alleg/iscanmmx.obj obj/msvc/alleg/ispr15.obj obj/msvc/alleg/ispr16.obj obj/msvc/alleg/ispr24.obj obj/msvc/alleg/ispr32.obj obj/msvc/alleg/ispr8.obj obj/msvc/alleg/istretch.obj obj/msvc/alleg/izbuf.obj obj/msvc/alleg/icolconv.obj obj/msvc/alleg/asmlock.obj obj/msvc/alleg/dllver.obj obj/msvc/alleg/gdi.obj obj/msvc/alleg/wddaccel.obj obj/msvc/alleg/wddbmp.obj obj/msvc/alleg/wddbmpl.obj obj/msvc/alleg/wddraw.obj obj/msvc/alleg/wddfull.obj obj/msvc/alleg/wddlock.obj obj/msvc/alleg/wddmode.obj obj/msvc/alleg/wddovl.obj obj/msvc/alleg/wddwin.obj obj/msvc/alleg/wdsinput.obj obj/msvc/alleg/wdsndmix.obj obj/msvc/alleg/wdsound.obj obj/msvc/alleg/wsndwo.obj obj/msvc/alleg/wdxver.obj obj/msvc/alleg/wdispsw.obj obj/msvc/alleg/wfile.obj obj/msvc/alleg/wgdi.obj obj/msvc/alleg/wgfxdrv.obj obj/msvc/alleg/winput.obj obj/msvc/alleg/wjoydrv.obj obj/msvc/alleg/wjoydx.obj obj/msvc/alleg/wjoyhelp.obj obj/msvc/alleg/wjoyw32.obj obj/msvc/alleg/wkeybd.obj obj/msvc/alleg/wmidi.obj obj/msvc/alleg/wmouse.obj obj/msvc/alleg/wsnddrv.obj obj/msvc/alleg/wsystem.obj obj/msvc/alleg/wthread.obj obj/msvc/alleg/wtimer.obj obj/msvc/alleg/wwnd.obj obj/msvc/alleg/colconv.obj kernel32.lib user32.lib gdi32.lib comdlg32.lib ole32.lib dinput.lib ddraw.lib dxguid.lib winmm.lib dsound.lib
   Creating library lib/msvc/alleg.lib and object lib/msvc/alleg.exp
allegro.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4
allegro.obj : error LNK2001: unresolved external symbol __imp__abort
allegro.obj : error LNK2001: unresolved external symbol __imp__sprintf
allegro.obj : error LNK2001: unresolved external symbol __imp__vsprintf
allegro.obj : error LNK2001: unresolved external symbol __imp__free
allegro.obj : error LNK2001: unresolved external symbol __imp__malloc
allegro.obj : error LNK2001: unresolved external symbol __imp__fputs
allegro.obj : error LNK2001: unresolved external symbol __imp____iob_func
allegro.obj : error LNK2001: unresolved external symbol __imp__fflush
allegro.obj : error LNK2001: unresolved external symbol __imp___errno
allegro.obj : error LNK2001: unresolved external symbol __imp__fopen
allegro.obj : error LNK2001: unresolved external symbol __imp__fprintf
allegro.obj : error LNK2001: unresolved external symbol __imp__fwrite
allegro.obj : error LNK2001: unresolved external symbol __imp__realloc
allegro.obj : error LNK2001: unresolved external symbol __imp__getenv
allegro.obj : error LNK2001: unresolved external symbol __imp__fclose
drvlist.obj : error LNK2001: unresolved external symbol __imp__memmove
file.obj : error LNK2001: unresolved external symbol __imp__tmpnam
file.obj : error LNK2001: unresolved external symbol __imp__read
OLDNAMES.lib(read.obi) : error LNK2001: unresolved external symbol __imp__read
file.obj : error LNK2001: unresolved external symbol __imp__close
OLDNAMES.lib(close.obi) : error LNK2001: unresolved external symbol __imp__close
file.obj : error LNK2001: unresolved external symbol __imp__open
OLDNAMES.lib (open.obi) : error LNK2001: unresolved external symbol __imp__open
file.obj : error LNK2001: unresolved external symbol __imp__lseek
OLDNAMES.lib(lseek.obi) : error LNK2001: unresolved external symbol __imp__lseek
file.obj : error LNK2001: unresolved external symbol __imp__dup
OLDNAMES.lib(dup.obi) : error LNK2001: unresolved external symbol __imp__dup
file.obj : error LNK2001: unresolved external symbol __imp__unlink
OLDNAMES.lib (unlink.obi) : error LNK2001: unresolved external symbol __imp__unlink
file.obj : error LNK2001: unresolved external symbol __imp__write
OLDNAMES.lib(write.obi) : error LNK2001: unresolved external symbol __imp__write
file.obj : error LNK2001: unresolved external symbol __imp__strpbrk
fonttxt.obj : error LNK2001: unresolved external symbol __imp__strtol
fonttxt.obj : error LNK2001: unresolved external symbol __imp__strtok
graphics.obj : error LNK2001: unresolved external symbol __imp__qsort
libc.obj : error LNK2001: unresolved external symbol __imp__strncat
readbmp.obj : error LNK2001: unresolved external symbol __imp__strdup
OLDNAMES.lib (strdup.obi) : error LNK2001: unresolved external symbol __imp__strdup
readbmp.obj : error LNK2001: unresolved external symbol __imp__stricmp
OLDNAMES.lib(stricmp.obi) : error LNK2001: unresolved external symbol __imp__stricmp
timer.obj : error LNK2001: unresolved external symbol __imp__clock
unicode.obj : error LNK2001: unresolved external symbol __imp__strtod
unicode.obj : error LNK2001: unresolved external symbol __imp__strerror
unicode.obj : error LNK2001: unresolved external symbol __imp__atof
wfile.obj : error LNK2001: unresolved external symbol __imp___getdrive
wfile.obj : error LNK2001: unresolved external symbol __imp___getdcwd
wfile.obj : error LNK2001: unresolved external symbol __imp___findnext64i32
wfile.obj : error LNK2001: unresolved external symbol __imp___findclose
wfile.obj : error LNK2001: unresolved external symbol __imp___findfirst64i32
wfile.obj : error LNK2001: unresolved external symbol __imp___stat64i32
winput.obj : error LNK2001: unresolved external symbol __imp___beginthread
LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
OLDNAMES.lib(read.obi) : error LNK2001: unresolved external symbol __imp___read
OLDNAMES.lib(close.obi) : error LNK2001: unresolved external symbol __imp___close
OLDNAMES.lib(open.obi) : error LNK2001: unresolved external symbol __imp___open
OLDNAMES.lib(lseek.obi) : error LNK2001: unresolved external symbol __imp___lseek
OLDNAMES.lib(dup.obi) : error LNK2001: unresolved external symbol __imp___dup
OLDNAMES.lib(unlink.obi) : error LNK2001: unresolved external symbol __imp___unlink
OLDNAMES.lib(write.obi) : error LNK2001: unresolved external symbol __imp___write
OLDNAMES.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp___strdup
OLDNAMES.lib(stricmp.obi) : error LNK2001: unresolved external symbol __imp___stricmp
lib/msvc/alleg42.dll : fatal error LNK1120: 53 unresolved externals
make: *** [lib/msvc/alleg42.dll] Error 96

It's borked. Apparently some linking library problem? :) Verify you arrive here.


--
Karthik
http://guilt.bafsoft.net
@echo off
rem
rem  Uses SED to generate the module definition file for linking into a DLL.
rem  This script should be run from the Allegro root directory.

SET SORT_BIN=gnusort

echo *** Warning !!!
echo  Using this script to generate the DLL export definition files may break
echo  binary compatibility with the latest release. Use misc/fixdll.sh instead.
echo ***

echo Scanning for API symbols...
gcc -E -I. -I./include -DSCAN_EXPORT -DALLEGRO_API -o _apidef.tmp misc/scanexp.c
sed -n -e "s/^ *allexp[fi][un][nl]  *\**\(.*\)_sym.*/    \1/p" _apidef.tmp > _apidef1.tmp
sed -n -e "s/^ *allexp[vfa][apr][rtr]  *\**\(.*\)_sym.*/    \1 DATA/p" _apidef.tmp >> _apidef1.tmp
%SORT_BIN% _apidef1.tmp > _apidef2.tmp

echo Scanning for WinAPI symbols...
gcc -E -I. -I./include -DSCAN_EXPORT -DALLEGRO_WINAPI -o _wapidef.tmp misc/scanexp.c
sed -n -e "s/^ *allexp[fi][un][nl]  *\**\(.*\)_sym.*/    \1/p" _wapidef.tmp > _wapidef1.tmp
sed -n -e "s/^ *allexp[vfa][apr][rtr]  *\**\(.*\)_sym.*/    \1 DATA/p" _wapidef.tmp >> _wapidef1.tmp
%SORT_BIN% _wapidef1.tmp > _wapidef2.tmp

echo Scanning for internal symbols...
gcc -E -I. -I./include -DSCAN_EXPORT -DALLEGRO_INTERNALS -o _intdef.tmp misc/scanexp.c
sed -n -e "s/^ *allexp[fi][un][nl]  *\**\(.*\)_sym.*/    \1/p" _intdef.tmp > _intdef1.tmp
sed -n -e "s/^ *allexp[vfa][apr][rtr]  *\**\(.*\)_sym.*/    \1 DATA/p" _intdef.tmp >> _intdef1.tmp
%SORT_BIN% _intdef1.tmp > _intdef2.tmp

copy _apidef2.tmp + _wapidef2.tmp + _intdef2.tmp _alldef2.tmp > nul

echo ; generated by fixdll.bat > _all.def
echo EXPORTS >> _all.def
sed -e "p" -e "=" -e "d" _alldef2.tmp > _alldef3.tmp
sed -e "N" -e "s/\n/ @/" -e "s/DATA \(.*\)/\1 DATA/" _alldef3.tmp >> _all.def

echo Generating...
echo  lib\msvc\allegro.def
copy _all.def lib\msvc\allegro.def > nul

echo  lib\mingw32\allegro.def
copy _all.def lib\mingw32\allegro.def > nul

echo  lib\bcc32\allegro.def
sed -e "s/^    \([a-zA-Z0-9_]*\) \([@0-9]*\)\([ A-Z]*\)/    _\1 = \1/" _all.def > lib\bcc32\allegro.def

del _*def*.tmp
del _all.def

echo Done!


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/