paulo@FUNSTATION /devel/raydium/raydium
$ make clean
paulo@FUNSTATION /devel/raydium/raydium
$ make shared
gcc -W -g -c myglut.c log.c atexit.c signal.c trigo.c random.c timecall.c profile.c parser.c fog.c window.c capture.c clear.c background.c light.c key.c mouse.c joy.c texture.c shadow.c render.c particle2.c sound.c callback.c normal.c vertex.c osd.c hdr.c shader.c register.c php.c rayphp.c console.c gui.c land.c sky.c internal.c file.c path.c file_tri.c camera.c object.c cli.c network.c init.c ode.c live.c video.c web.c reg_api.c -I"/usr/local/include" -I"/usr/local/include/php-5.1.2" -I"/usr/local/include/php-5.1.2/main" -I"/usr/local/include/php-5.1.2/Zend" -I"/usr/local/include/php-5.1.2/TSRM" -DRAYDIUM_BUILD_SHARED_LIBRARY -fexpensive-optimizations -O3
light.c: In function 'raydium_light_texture':
light.c:84: warning: comparison between signed and unsigned
mouse.c: In function 'raydium_mouse_move':
mouse.c:17: warning: comparison between signed and unsigned
mouse.c:17: warning: comparison between signed and unsigned
texture.c: In function 'raydium_texture_size_is_correct':
texture.c:21: warning: comparison between signed and unsigned
texture.c: In function 'raydium_texture_load_internal':
texture.c:30: warning: 'bpp' may be used uninitialized in this function
texture.c:30: warning: 'ty' may be used uninitialized in this function
texture.c:30: warning: 'tx' may be used uninitialized in this function
texture.c:29: warning: 'data' may be used uninitialized in this function
texture.c:27: warning: 'file' may be used uninitialized in this function
shadow.c: In function 'raydium_shadow_enable':
shadow.c:68: warning: comparison between signed and unsigned
sound.c: In function 'raydium_sound_music_callback':
sound.c:806: warning: comparison between signed and unsigned
hdr.c: In function 'raydium_hdr_texture':
hdr.c:362: warning: comparison between signed and unsigned
shader.c: In function 'raydium_shader_attach_texture':
shader.c:369: warning: comparison between signed and unsigned
register.c: In function 'raydium_register_name_isvalid':
register.c:25: warning: comparison between signed and unsigned
php.c:95: warning: missing initializer
php.c:95: warning: (near initialization for 'raydium_sapi_module.unblock_interruptions')
console.c: In function 'raydium_console_complete':
console.c:460: warning: comparison between signed and unsigned
gui.c: In function 'raydium_gui_combo_draw':
gui.c:1132: warning: comparison between signed and unsigned
gui.c:1143: warning: comparison between signed and unsigned
gui.c: In function 'raydium_gui_zone_draw':
gui.c:425: warning: 'col' may be used uninitialized in this function
gui.c: In function 'raydium_gui_track_draw':
gui.c:519: warning: 'cuv' may be used uninitialized in this function
gui.c: In function 'raydium_gui_button_draw':
gui.c:314: warning: 'suv' may be used uninitialized in this function
land.c: In function 'raydium_land_surface':
land.c:103: warning: 'dy' is used uninitialized in this function
land.c:103: warning: 'dx' is used uninitialized in this function
land.c:103: warning: 'n' is used uninitialized in this function
file.c: In function 'raydium_file_basename':
file.c:45: warning: comparison between signed and unsigned
file_tri.c: In function 'read_vertex_from':
file_tri.c:271: warning: comparison between signed and unsigned
object.c: In function 'raydium_object_find':
object.c:12: warning: comparison between signed and unsigned
object.c: In function 'raydium_object_isvalid':
object.c:20: warning: comparison between signed and unsigned
object.c: In function 'raydium_object_anim_generate_internal':
object.c:477: warning: comparison between signed and unsigned
object.c: In function 'raydium_object_callback':
object.c:593: warning: comparison between signed and unsigned
network.c: In function 'raydium_network_propag_add':
network.c:101: warning: comparison between signed and unsigned
network.c: In function 'raydium_network_socket_is_readable':
network.c:442: warning: comparison between signed and unsigned
network.c: In function 'raydium_network_read':
network.c:694: warning: comparison between signed and unsigned
network.c: In function 'raydium_network_read_flushed':
network.c:859: warning: 'save_type' may be used uninitialized in this function
network.c:858: warning: 'save_id' may be used uninitialized in this function
init.c: In function 'raydium_init_load':
init.c:301: warning: 'tmp_near' may be used uninitialized in this function
init.c:301: warning: 'tmp_far' may be used uninitialized in this function
init.c:301: warning: 'tmp_fov' may be used uninitialized in this function
init.c:300: warning: 'tmp_lighting' may be used uninitialized in this function
init.c:300: warning: 'tmp_fog' may be used uninitialized in this function
init.c:300: warning: 'tmp_filter' may be used uninitialized in this function
init.c:300: warning: 'tmp_windowtype' may be used uninitialized in this function
init.c:300: warning: 'tmp_height' may be used uninitialized in this function
init.c:300: warning: 'tmp_width' may be used uninitialized in this function
ode.c: In function 'raydium_ode_ground_set_name':
ode.c:367: warning: comparison between signed and unsigned
ode.c: In function 'raydium_ode_capture_seek':
ode.c:4920: warning: comparison between signed and unsigned
ode.c:4923: warning: comparison of unsigned expression < 0 is always false
ode.c: In function 'raydium_ode_capture_play_internal_index_build':
ode.c:4674: warning: 'last_event.fpos' may be used uninitialized in this function
ode.c:4674: warning: 'last_event.index' may be used uninitialized in this function
ode.c: In function 'dNearPickback':
ode.c:4484: warning: 'e2' is used uninitialized in this function
ode.c: In function 'raydium_ode_draw_all':
ode.c:3348: warning: 'col' may be used uninitialized in this function
ode.c:3343: warning: 'f2' may be used uninitialized in this function
ode.c:3342: warning: 'f1' may be used uninitialized in this function
ode.c: In function 'raydium_ode_motor_update_joints_data_internal':
ode.c:2170: warning: 'fmax' may be used uninitialized in this function
ode.c:2169: warning: 'vel' may be used uninitialized in this function
ode.c: In function 'raydium_ode_joint_suspension':
ode.c:1731: warning: 'f' may be used uninitialized in this function
live.c: In function 'Frame_CallBack':
live.c:151: warning: comparison between signed and unsigned
live.c:154: warning: comparison between signed and unsigned
live.c: In function 'raydium_live_texture_create':
live.c:875: warning: comparison between signed and unsigned
web.c: In function 'raydium_web_client_get':
web.c:365: warning: 'fp' may be used uninitialized in this function
gcc -shared myglut.o log.o atexit.o signal.o trigo.o random.o timecall.o profile.o parser.o fog.o window.o capture.o clear.o background.o light.o key.o mouse.o joy.o texture.o shadow.o render.o particle2.o sound.o callback.o normal.o vertex.o osd.o hdr.o shader.o register.o php.o rayphp.o console.o gui.o land.o sky.o nternal.o file.o path.o file_tri.o camera.o object.o cli.o network.o init.o ode.o live.o video.o web.o reg_api.o -L"/usr/local/bin" -L"/usr/local/lib" -Wl,--out-implib,libraydiumdll.a,--output-def,raydium.def,--export-all-symbols -lphp5ts -lode -lopengl32 -lglu32 -lgdi32 -ljpeg -lwinmm -lglew32 -lm -lopenal32 -lws2_32 -lalut -lvorbisfile -lvorbis -logg -lvfw32 -lstdc++ -o raydium.dll
Creating library file: libraydiumdll.a
Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
Creating library raydium.lib and object raydium.exp
Shared build complete!
paulo@FUNSTATION /devel/raydium/raydium
$ cl vs-test.c raydium.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
vs-test.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
/out:vs-test.exe
vs-test.obj
raydium.lib
paulo@FUNSTATION /devel/raydium/raydium
$ vs-test.exe
Raydium: Raydium 3D Game Engine
Raydium: version 0.706
Raydium: command line args: OK
Raydium: chdir to 'C:\msys\devel\raydium\raydium\': OK
Raydium: using 'C:\Document and Settings\Paulo\.raydium' as home dir
So it is possible then
now my code (vs-test.c) is:
// fake DLL imports (need to work on the original headers)
extern __declspec(dllimport) int raydium_mouse_button[3];
__declspec(dllimport) void raydium_init_args(int argc, char **argv);
int main (int argc, char **argv)
{
raydium_init_args(argc, argv);
return (0);
}