Changeset 0e4ab80 in mainline for libc/Makefile


Ignore:
Timestamp:
2005-11-16T14:13:31Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1444af8
Parents:
3eddaff
Message:

initial uspace build system

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libc/Makefile

    r3eddaff r0e4ab80  
    1 include ../../arch/$(ARCH)/Makefile.inc
     1#
     2# Copyright (C) 2005 Martin Decky
     3# All rights reserved.
     4#
     5# Redistribution and use in source and binary forms, with or without
     6# modification, are permitted provided that the following conditions
     7# are met:
     8#
     9# - Redistributions of source code must retain the above copyright
     10#   notice, this list of conditions and the following disclaimer.
     11# - Redistributions in binary form must reproduce the above copyright
     12#   notice, this list of conditions and the following disclaimer in the
     13#   documentation and/or other materials provided with the distribution.
     14# - The name of the author may not be used to endorse or promote products
     15#   derived from this software without specific prior written permission.
     16#
     17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27#
    228
    3 sources=libc.c \
    4         entry.s
     29## Make some default assumptions
     30#
    531
    6 CFLAGS+=-nostdinc -I. -Werror-implicit-function-declaration -Wmissing-prototypes -Werror
     32ifndef ARCH
     33        ARCH = ia32
     34endif
    735
    8 objects:=$(addsuffix .o,$(basename $(sources)))
     36## Common compiler flags
     37#
    938
    10 .PHONY : all depend build clean dist-clean
     39DEFS = -DARCH=$(ARCH)
     40CFLAGS = -fno-builtin -fomit-frame-pointer -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -nostdlib -nostdinc -Iinclude
     41LFLAGS = -M
     42AFLAGS =
    1143
    12 all: dist-clean depend build
     44## Setup platform configuration
     45#
     46
     47include arch/$(ARCH)/Makefile.inc
     48
     49## Toolchain configuration
     50#
     51
     52ifeq ($(COMPILER),native)
     53        CC = gcc
     54        AS = as
     55        LD = ld
     56        OBJCOPY = objcopy
     57        OBJDUMP = objdump
     58else
     59        CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
     60        AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
     61        LD = $(TOOLCHAIN_DIR)/$(TARGET)-ld
     62        OBJCOPY = $(TOOLCHAIN_DIR)/$(TARGET)-objcopy
     63        OBJDUMP = $(TOOLCHAIN_DIR)/$(TARGET)-objdump
     64endif
     65
     66## Sources
     67#
     68
     69GENERIC_SOURCES = \
     70        generic/libc.c
     71
     72ARCH_SOURCES = \
     73        arch/$(ARCH)/libc.c
     74
     75GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES)))
     76ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES)))
     77
     78.PHONY: all clean depend boot
     79
     80all: libc.a
    1381
    1482-include Makefile.depend
    1583
     84clean:
     85        -rm -f libc.a
     86        find generic/ arch/$(ARCH)/ -name '*.o' -follow -exec rm \{\} \;
     87
    1688depend:
    17         $(CC) $(CFLAGS) -M $(sources) >Makefile.depend
     89        $(CC) $(DEFS) $(CFLAGS) -M $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend
    1890
    19 build: libc.a
     91libc.a: depend $(ARCH_OBJECTS) $(GENERIC_OBJECTS)
     92       
    2093
    21 clean:
    22         find . -name '*.o' -exec rm \{\} \;
    23         -rm libc.a
    24 
    25 dist-clean:
    26         -rm Makefile.depend
    27         -$(MAKE) clean
    28 
    29 libc.a: $(objects)
    30         $(AR) rc libc.a $(objects)
     94%.o: %.S
     95        $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@
    3196
    3297%.o: %.s
    33         $(AS) $(ASFLAGS) $< -o $@
     98        $(AS) $(AFLAGS) $< -o $@
    3499
    35100%.o: %.c
    36         $(CC) $(CFLAGS) -c $< -o $@
     101        $(CC) $(DEFS) $(CFLAGS) -c $< -o $@
Note: See TracChangeset for help on using the changeset viewer.