Mercurial > sdl-ios-xcode
annotate include/SDL_loadso.h @ 693:6c119628180d
Date: Sat, 16 Aug 2003 16:22:56 +0300
From: "Mike Gorchak"
Subject: Package building for QNX6
I'm just completed the package description file for QNX6 - qpg, it is like a\
.spec files for Linux. Please place SDL.qpg.in file in the root of the proj\
ect, where .spec file is placed. And sdl12qpg.diff - just adding the SDL.qpg\
.in. The same for the SDL_image. I'm planning to add .qpg files creation for\
all SDL* projects.
As for shared library building for QNX6. It is very hard to improve the exis\
ting libtool code to support QNX shared libraries. Much easyiest is to remov\
e libtool.m4 code from the acinclude.m4 for those persons, who building shar\
ed libraries for QNX6. I'm described all what they need to do with .so under\
QNX6 in the README.QNX file. And 90% of people used the precompiled librari\
es, so I think it is not big problem :)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 23 Aug 2003 23:25:46 +0000 |
parents | 81c74904f51f |
children | b8d311d90021 |
rev | line source |
---|---|
648
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 /* |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
6 modify it under the terms of the GNU Library General Public |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
8 version 2 of the License, or (at your option) any later version. |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 Library General Public License for more details. |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 You should have received a copy of the GNU Library General Public |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 License along with this library; if not, write to the Free |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 Sam Lantinga |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 slouken@libsdl.org |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 #ifdef SAVE_RCSID |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 static char rcsid = |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 "@(#) $Id$"; |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 #endif |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 /* System dependent library loading routines */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 |
649
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
31 /* Some things to keep in mind: |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
32 - These functions only work on C function names. Other languages may |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
33 have name mangling and intrinsic language support that varies from |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
34 compiler to compiler. |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
35 - Make sure you declare your function pointers with the same calling |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
36 convention as the actual library function. Your code will crash |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
37 mysteriously if you do not do this. |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
38 - Avoid namespace collisions. If you load a symbol from the library, |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
39 it is not defined whether or not it goes into the global symbol |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
40 namespace for the application. If it does and it conflicts with |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
41 symbols in your code or other shared libraries, you will not get |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
42 the results you expect. :) |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
43 */ |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
44 |
81c74904f51f
Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents:
648
diff
changeset
|
45 |
648
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
46 #ifndef _SDL_loadso_h |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 #define _SDL_loadso_h |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 #include "begin_code.h" |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 /* Set up for C function definitions, even when using C++ */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 #ifdef __cplusplus |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 extern "C" { |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 #endif |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 /* This function dynamically loads a shared object and returns a pointer |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 * to the object handle (or NULL if there was an error). |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 * The 'sofile' parameter is a system dependent name of the object file. |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 extern DECLSPEC void * SDLCALL SDL_LoadObject(const char *sofile); |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 /* Given an object handle, this function looks up the address of the |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 * named function in the shared object and returns it. This address |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 * is no longer valid after calling SDL_UnloadObject(). |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 extern DECLSPEC void * SDLCALL SDL_LoadFunction(void *handle, const char *name); |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 /* Unload a shared object from memory */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 /* Ends C function definitions when using C++ */ |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 #ifdef __cplusplus |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 } |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 #endif |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 #include "close_code.h" |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 |
12a21d82a060
Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 #endif /* _SDL_loadso_h */ |