55 lines
1.5 KiB
Makefile
55 lines
1.5 KiB
Makefile
# Cooperative Task Switching Library Makefile for DJGPP cross-compilation
|
|
|
|
DJGPP_PREFIX = $(HOME)/djgpp/djgpp
|
|
DJGPP_LIBPATH = $(HOME)/claude/windriver/tools/lib
|
|
CC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc
|
|
AR = LD_LIBRARY_PATH=$(DJGPP_LIBPATH) $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-ar
|
|
RANLIB = LD_LIBRARY_PATH=$(DJGPP_LIBPATH) $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-ranlib
|
|
EXE2COFF = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/exe2coff
|
|
CWSDSTUB = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/CWSDSTUB.EXE
|
|
CFLAGS = -O2 -Wall -Wextra -march=i486 -mtune=i586
|
|
|
|
OBJDIR = ../obj/tasks
|
|
LIBDIR = ../lib
|
|
BINDIR = ../bin
|
|
|
|
SRCS = taskswitch.c
|
|
OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS))
|
|
TARGET = $(LIBDIR)/libtasks.a
|
|
|
|
DEMO_SRCS = demo.c
|
|
DEMO_OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(DEMO_SRCS))
|
|
DEMO_TARGET = $(BINDIR)/tsdemo.exe
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(TARGET) $(DEMO_TARGET)
|
|
|
|
$(TARGET): $(OBJS) | $(LIBDIR)
|
|
$(AR) rcs $@ $(OBJS)
|
|
$(RANLIB) $@
|
|
|
|
$(DEMO_TARGET): $(DEMO_OBJS) $(TARGET) | $(BINDIR)
|
|
$(CC) $(CFLAGS) -o $@ $(DEMO_OBJS) -L$(LIBDIR) -ltasks
|
|
$(EXE2COFF) $@
|
|
cat $(CWSDSTUB) $(BINDIR)/tsdemo > $@
|
|
rm -f $(BINDIR)/tsdemo
|
|
|
|
$(OBJDIR)/%.o: %.c | $(OBJDIR)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(OBJDIR):
|
|
mkdir -p $(OBJDIR)
|
|
|
|
$(LIBDIR):
|
|
mkdir -p $(LIBDIR)
|
|
|
|
$(BINDIR):
|
|
mkdir -p $(BINDIR)
|
|
|
|
# Dependencies
|
|
$(OBJDIR)/taskswitch.o: taskswitch.c taskswitch.h thirdparty/stb_ds.h
|
|
$(OBJDIR)/demo.o: demo.c taskswitch.h
|
|
|
|
clean:
|
|
rm -rf $(OBJDIR) $(TARGET) $(DEMO_TARGET)
|