* libcurses++, libc++ and liblightOS++ are installed into the crosscompiler directory
[lightOS.git] / Makefile.rules
blob05a8eb5c0d79cf1571a3f980b1b6a5c67f256873
1 ###############################################################################
2 ######### lightOS Makfile                                            ##########
3 ###############################################################################
5 .PHONY : install-headers uninstall-headers install uninstall
7 # Directories
8 BUILD= $(ROOT_DIR)/build
9 TOOLCHAIN= $(ROOT_DIR)/toolchain
10 TMP= $(BUILD)/tmp/$(ARCH)
12 # Temporary directories
13 TMP_LIBLIGHTOS= $(TMP)/lib/lightOS
14 TMP_LIBC= $(TMP)/lib/libc
15 TMP_LIBCPP= $(TMP)/lib/libc++
16 TMP_LIBCURSESPP= $(TMP)/lib/curses++
17 TMP_LIBLIGHTOSPP= $(TMP)/lib/lightOS++
18 TMP_LIBCDI= $(TMP)/lib/libcdi
19 TMP_BZIP2= $(TMP)/lib/ports/bzip2
20 TMP_FREETYPE= $(TMP)/lib/ports/freetype
21 TMP_LIBPNG= $(TMP)/lib/ports/libpng
22 TMP_ZLIB= $(TMP)/lib/ports/zlib
23 TMP_KERNEL= $(TMP)/kernel
24 TMP_APP= $(TMP)/app
25 TMP_NANO= $(TMP)/app/nano
26 TMP_NASM= $(TMP)/app/nasm
27 TMP_YASM= $(TMP)/app/yasm
28 TMP_BASH= $(TMP)/app/bash
29 TMP_DASH= $(TMP)/app/dash
30 TMP_MAKE= $(TMP)/app/make
31 TMP_BINUTILS= $(TMP)/app/binutils
32 TMP_SERVER= $(TMP)/server
34 # Include directories
35 INCLUDE_MAKEDEPEND= -I $(TOOLCHAIN)/$(ARCH)-gcc-include -I $(TOOLCHAIN)/$(ARCH)-gcc-include-fixed
36 LIBARCH_INCLUDE= -I $(ROOT_DIR)/libarch/include
37 LIBKERNEL_INCLUDE= -I $(ROOT_DIR)/libkernel/include
38 LIBSERVER_INCLUDE= -I $(ROOT_DIR)/libserver/include
39 LIBC_INCLUDE= $(LIBARCH_INCLUDE) -I $(ROOT_DIR)/lib/libc/include
40 LIBCPP_INCLUDE= -I $(ROOT_DIR)/lib/libc++/include
41 LIBCURSESPP_INCLUDE= -I $(ROOT_DIR)/lib/curses++/include
42 LIBLIGHTOSPP_INCLUDE= -I $(ROOT_DIR)/lib/lightOS++/include
43 LIBCDI_INCLUDE= -I $(ROOT_DIR)/lib/cdi/include
44 LIBZ_INCLUDE= -I $(ROOT_DIR)/lib/ports/zlib/src
46 # Libraries
47 LIBLIGHTOS= $(BUILD)/$(ARCH)/lib/liblightOS.so
48 LIBLIGHTOSPP= $(BUILD)/$(ARCH)/lib/liblightOS++.so
49 LIBCPP= $(BUILD)/$(ARCH)/lib/libc++.so
50 LIBCURSESPP= $(BUILD)/$(ARCH)/lib/libcurses++.so
51 LIBC= $(BUILD)/$(ARCH)/lib/libc.so
52 LIBCDI= $(BUILD)/$(ARCH)/lib/libcdi.so
53 LIBGCC= $(ROOT_DIR)/toolchain/$(ARCH)-libgcc.a
55 # Tools
56 CPP= $(TOOLCHAIN)/$(ARCH)-g++
57 CC= $(TOOLCHAIN)/$(ARCH)-gcc
58 LD= $(TOOLCHAIN)/$(ARCH)-ld
59 AS= $(TOOLCHAIN)/$(ARCH)-as
60 AR= $(TOOLCHAIN)/$(ARCH)-ar
61 GCC_MACHINE:= `$(CC) -dumpmachine`
62 GCC_VERSION:= `$(CC) -dumpversion`
64 # Linkerscripts
65 LDSCRIPT_C= $(ROOT_DIR)/linkerscript/$(ARCH)-c.ld
66 LDSCRIPT_CPP= $(ROOT_DIR)/linkerscript/$(ARCH)-c++.ld
67 LIB_LDSCRIPT_C= $(ROOT_DIR)/linkerscript/$(ARCH)-lib.ld
68 LIB_LDSCRIPT_CPP= $(ROOT_DIR)/linkerscript/$(ARCH)-lib++.ld
70 # CRT0
71 CRT0_C= $(BUILD)/$(ARCH)/lib/crt0.o
72 CRT0_CPP= $(BUILD)/$(ARCH)/lib/crt0++.o $(BUILD)/$(ARCH)/lib/initialize.o
74 # Compilation flags
75 KERNEL_CPP_FLAGS= -std=c++0x -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(KERNEL_GCC_FLAGS)
76 KERNEL_C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors $(ARCH_DEFINE) $(KERNEL_GCC_FLAGS)
77 LIB_CPP_FLAGS= -std=c++0x -fuse-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(LIB_GCC_FLAGS)
78 LIB_C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(LIB_GCC_FLAGS)
79 CPP_FLAGS= -std=c++0x -fuse-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(GCC_FLAGS)
80 C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(GCC_FLAGS)
81 BASH_C_FLAGS= -std=gnu99 -nostdlib -fno-builtin $(ARCH_DEFINE) $(GCC_FLAGS)
83 # Assembly flags
84 AS_FLAGS= -c -I $(ROOT_DIR)