1 /*	 $Id: ccconfig.h,v 1.3 2014/10/02 07:45:52 ragge Exp $ */
2 /*
3  * Escrit per Antoine Leca pel projecte PCC, 2011-03.
4  * Copyright (C) 2011 Anders Magnusson (ragge@ludd.luth.se).
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 /*
29  * Various settings that controls how the C compiler works.
30  *
31  * MINIX (http://www.minix3.org), both Classic a.out=PC/IX and ELF
32  */
33 
34 #ifndef LIBDIR
35 #ifdef LIBEXECDIR
36 #define LIBDIR		LIBEXECDIR "../lib/"
37 #else
38 #define LIBDIR		"/usr/lib/"
39 #endif
40 #endif
41 
42 #ifdef ELFABI
43 /* common cpp predefines */
44 #define CPPADD	{ "-D__minix", "-D__ELF__", NULL }
45 
46 /* linker stuff */
47 #define STARTLABEL "_start"
48 #define CRT0FILE LIBDIR "crt1.o"
49 #define CRT0FILE_PROFILE LIBDIR "gcrt1.o"
50 #define LIBCLIBS { "-lc", "-lpcc", NULL }
51 
52 #define STARTFILES { LIBDIR "crti.o", /*LIBDIR "crtbegin.o",*/ NULL }
53 #define ENDFILES { /*LIBDIR "crtend.o",*/ LIBDIR "crtn.o", NULL }
54 
55 #define STARTFILES_S { LIBDIR "crti.o", /*LIBDIR "crtbeginS.o",*/ NULL }
56 #define ENDFILES_S { /*LIBDIR "crtendS.o",*/ LIBDIR "crtn.o", NULL }
57 
58 #elif defined(AOUTABI)
59 
60 /* common cpp predefines */
61 #define CPPADD	{ "-D__minix", NULL }
62 
63 /* linker stuff */
64 #define STARTLABEL "crtso"
65 #define CRT0FILE LIBDIR "crtso.o"
66 /* #define CRT0FILE_PROFILE "/usr/lib/pcc/gcrtso.o" */
67 #define LIBCLIBS { "-L" LIBDIR "pcc", \
68 	"-lc", "-lpcc", "-lend", NULL }
69 #define noSTARTFILES { LIBDIR "crti.o", LIBDIR "crtbegin.o", NULL }
70 #define noENDFILES { LIBDIR "crtend.o", LIBDIR "crtn.o", NULL }
71 
72 #else
73 #error defines for ABI missing
74 #endif
75 
76 #if defined(mach_i386)
77 #define CPPMDADD { "-D__i386", \
78 	"-D_EM_WSIZE=4", "-D_EM_PSIZE=4", "-D_EM_LSIZE=4", \
79 	"-D_EM_SSIZE=2", "-D_EM_FSIZE=4", "-D_EM_DSIZE=8", \
80 	NULL, }
81 #else
82 #define CPPMDADD { "-D__i86", \
83 	"-D_EM_WSIZE=2", "-D_EM_PSIZE=2", "-D_EM_LSIZE=4", \
84 	"-D_EM_SSIZE=2", "-D_EM_FSIZE=4", "-D_EM_DSIZE=8", \
85 	NULL, }
86 #endif
87