~ improved the libcurses++ interface
[lightOS.git] / Makefile.rules
blobc76ab4c45433793b46d817216d8e042b79156c35
1 ###############################################################################
2 ######### lightOS Makfile                                            ##########
3 ###############################################################################
5 .PHONY : dep
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_LIBUNIX= $(TMP)/lib/libunix
19 TMP_LIBCDI= $(TMP)/lib/libcdi
20 TMP_BZIP2= $(TMP)/lib/ports/bzip2
21 TMP_FREETYPE= $(TMP)/lib/ports/freetype
22 TMP_LIBPNG= $(TMP)/lib/ports/libpng
23 TMP_ZLIB= $(TMP)/lib/ports/zlib
24 TMP_KERNEL= $(TMP)/kernel
25 TMP_APP= $(TMP)/app
26 TMP_NANO= $(TMP)/app/nano
27 TMP_NASM= $(TMP)/app/nasm
28 TMP_YASM= $(TMP)/app/yasm
29 TMP_BASH= $(TMP)/app/bash
30 TMP_DASH= $(TMP)/app/dash
31 TMP_MAKE= $(TMP)/app/make
32 TMP_BINUTILS= $(TMP)/app/binutils
33 TMP_SERVER= $(TMP)/server
35 # Include directories
36 INCLUDE_MAKEDEPEND= -I $(TOOLCHAIN)/$(ARCH)-gcc-include -I $(TOOLCHAIN)/$(ARCH)-gcc-include-fixed
37 LIBARCH_INCLUDE= -I $(ROOT_DIR)/libarch/include
38 LIBKERNEL_INCLUDE= -I $(ROOT_DIR)/libkernel/include
39 LIBSERVER_INCLUDE= -I $(ROOT_DIR)/libserver/include
40 LIBC_INCLUDE= $(LIBARCH_INCLUDE) -I $(ROOT_DIR)/lib/libc/include
41 LIBUNIX_INCLUDE= -I $(ROOT_DIR)/lib/libunix/include
42 LIBCPP_INCLUDE= -I $(ROOT_DIR)/lib/libc++/include
43 LIBCURSESPP_INCLUDE= -I $(ROOT_DIR)/lib/curses++/include
44 LIBLIGHTOSPP_INCLUDE= -I $(ROOT_DIR)/lib/lightOS++/include
45 LIBCDI_INCLUDE= -I $(ROOT_DIR)/lib/cdi/include
46 LIBZ_INCLUDE= -I $(ROOT_DIR)/lib/ports/zlib/src
48 # Libraries
49 LIBLIGHTOS= $(BUILD)/$(ARCH)/lib/liblightOS.so
50 LIBLIGHTOSPP= $(BUILD)/$(ARCH)/lib/liblightOS++.so
51 LIBCPP= $(BUILD)/$(ARCH)/lib/libc++.so
52 LIBCURSESPP= $(BUILD)/$(ARCH)/lib/libcurses++.so
53 LIBC= $(BUILD)/$(ARCH)/lib/libc.so
54 LIBCDI= $(BUILD)/$(ARCH)/lib/libcdi.so
55 LIBUNIX= $(BUILD)/$(ARCH)/lib/libunix.so
56 LIBGCC= $(ROOT_DIR)/toolchain/$(ARCH)-libgcc.a
58 # Tools
59 CPP= $(TOOLCHAIN)/$(ARCH)-g++
60 CC= $(TOOLCHAIN)/$(ARCH)-gcc
61 LD= $(TOOLCHAIN)/$(ARCH)-ld
62 AS= $(TOOLCHAIN)/$(ARCH)-as
63 AR= $(TOOLCHAIN)/$(ARCH)-ar
65 # Dependency file
66 DEP= lightOS.depend
68 # Linkerscripts
69 LDSCRIPT_C= $(ROOT_DIR)/linkerscript/$(ARCH)-c.ld
70 LDSCRIPT_CPP= $(ROOT_DIR)/linkerscript/$(ARCH)-c++.ld
71 LIB_LDSCRIPT_C= $(ROOT_DIR)/linkerscript/$(ARCH)-lib.ld
72 LIB_LDSCRIPT_CPP= $(ROOT_DIR)/linkerscript/$(ARCH)-lib++.ld
74 # CRT0
75 CRT0_C= $(BUILD)/$(ARCH)/lib/crt0.o $(BUILD)/$(ARCH)/lib/_main.o
76 CRT0_CPP= $(BUILD)/$(ARCH)/lib/crt0++.o $(BUILD)/$(ARCH)/lib/_main.o $(BUILD)/$(ARCH)/lib/initialize.o
78 # Compilation flags
79 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)
80 KERNEL_C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors $(ARCH_DEFINE) $(KERNEL_GCC_FLAGS)
81 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)
82 LIB_C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(LIB_GCC_FLAGS)
83 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)
84 C_FLAGS= -std=c99 -nostdlib -fno-builtin -Wall -Wextra -pedantic-errors -Wno-unused-parameter $(ARCH_DEFINE) $(GCC_FLAGS)
85 BASH_C_FLAGS= -std=gnu99 -nostdlib -fno-builtin $(ARCH_DEFINE) $(GCC_FLAGS)
87 # Assembly flags
88 AS_FLAGS= -c -I $(ROOT_DIR)