Race in kmem_cache_init fixed
[akaros.git] / user / parlib / Makefile
index 2a5f819..13565de 100644 (file)
@@ -1,5 +1,5 @@
-TARGET_ARCH ?= i686
-CFLAGS = -O2 -std=gnu99 -static -fomit-frame-pointer 
+TARGET_ARCH ?= none    # catch bugs
+CFLAGS = -O2 -std=gnu99 -static -fomit-frame-pointer -g
 LIBNAME = parlib
 V ?= @
 
@@ -19,10 +19,17 @@ uc = $(shell echo $(1) | tr a-z A-Z)
 LIBUCNAME := $(call uc, $(LIBNAME))
 HEADERS := $(shell find $(INCDIR) -name *.h)
 CFILES  := $(wildcard $(SRCDIR)*.c)
-OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES))
+SFILES  := $(wildcard $(SRCDIR)$(TARGET_ARCH)/*.S)
+OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
+           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
 
 all: $(FINALLIB)
 
+$(OBJDIR)/$(TARGET_ARCH)/%.o: $(SRCDIR)$(TARGET_ARCH)/%.S $(HEADERS)
+       @echo + as [$(LIBUCNAME)] $<
+       @mkdir -p $(@D)
+       $(V)$(CC) $(CFLAGS) $(INCS) -o $@ -c $<
+
 $(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS)
        @echo + cc [$(LIBUCNAME)] $<
        @mkdir -p $(@D)
@@ -36,6 +43,8 @@ $(FINALLIB): $(OBJS)
 install: $(FINALLIB)
        cp $(FINALLIB) $(GCC_ROOT)/$(TARGET_ARCH)-ros/lib/
        cp -R $(INCDIR)/* $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/
+       rm -rf $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/parlib  
+       ln -fs . $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/parlib  
 
 clean: 
        @echo + clean [$(LIBUCNAME)]