use same location as .configured, etc, to store .files-touched
[AROS.git] / compiler / clib / arosc_autoinit.c
blobe0e75cf2effae1967aac8b01de7d860e58dfdd28
1 /*
2 Copyright © 1995-2009, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: autoinit library - arosc.library specific code
6 Lang: english
7 */
9 #include <aros/symbolsets.h>
10 #include <aros/startup.h>
12 #define DEBUG 0
13 #include <aros/debug.h>
15 #include "arosc_init.h"
16 #include "etask.h"
18 void __arosc_program_startup(void);
19 void __arosc_program_end(void);
22 static int __arosc_libopen(struct Library *aroscbase)
24 return arosc_internalinit();
27 static void __arosc_libclose(struct Library *aroscbase)
29 arosc_internalexit();
32 ADD2OPENLIB(__arosc_libopen, 0);
33 ADD2CLOSELIB(__arosc_libclose, 0);
35 ADD2LIBS("arosc.library", 42, struct Library *, aroscbase);
37 static struct arosc_startup arosc_startup;
39 static void __arosc_startup(void)
41 struct Process *myproc;
43 D(bug("[__arosc_startup] Start\n"));
45 __arosc_program_startup();
47 myproc = (struct Process *)FindTask(NULL);
48 GetIntETask(FindTask(NULL))->iet_startup = &arosc_startup;
49 arosc_startup.as_startup_error = __startup_error;
51 if (setjmp(arosc_startup.as_startup_jmp_buf) == 0)
53 D(bug("[__arosc_startup] setjmp() called\n"));
54 __startup_entries_next();
56 else
58 D(bug("[__arosc_startup] setjmp() return from longjmp\n"));
59 __startup_error = arosc_startup.as_startup_error;
62 __arosc_program_end();
64 D(bug("[__arosc_startup] Leave\n"));
67 ADD2SET(__arosc_startup, program_entries, 0);