OS X's sed doesn't understand the 'i' flag. And commas and spaces don't
[AROS.git] / tools / genmodule / writegetlibbase.c
blob00a763f2b36c2f5f6bba584a7cb90e05b3ccc7e9
1 /*
2 Copyright © 2012, The AROS Development Team. All rights reserved.
3 $Id$
5 Function to write module_getlibbase.c. Part of genmodule.
6 */
8 #include "genmodule.h"
10 void writegetlibbase(struct config *cfg, int is_rel)
12 FILE *out;
13 char line[256], *banner;
15 snprintf(line, 255, "%s/%s_%sgetlibbase.c",
16 cfg->gendir, cfg->modulename, is_rel ? "rel" : ""
18 out = fopen(line, "w");
20 if (out==NULL)
22 perror(line);
23 exit(20);
26 banner = getBanner(cfg);
27 fprintf(out, "%s\n", banner);
28 freeBanner(banner);
30 if (!is_rel)
32 fprintf(out,
33 "extern void *%s;\n"
34 "\n"
35 "void *%s_GetLibbase(void)\n"
36 "{\n"
37 " return %s;\n"
38 "}\n",
39 cfg->libbase,
40 cfg->basename,
41 cfg->libbase
44 else /* is_rel */
46 fprintf(out,
47 "#include <exec/types.h>\n"
48 "void *__GM_GetBase(void);\n"
49 "extern IPTR %s_offset;\n"
50 "\n"
51 "void *%s_GetLibbase(void)\n"
52 "{\n"
53 " return *((void **)((char *)__GM_GetBase()+%s_offset));\n"
54 "}\n",
55 cfg->libbase,
56 cfg->basename,
57 cfg->libbase
60 fclose(out);