160 lines
3.2 KiB
Makefile
160 lines
3.2 KiB
Makefile
# @(#)device.mk 1.1 94/10/31 SMI
|
|
# pixrect library common makefile template
|
|
# (included in each sub-makefile)
|
|
|
|
# targets
|
|
LIB = $(TARGET_DIR)/libpixrect.a
|
|
LIB_g = $(TARGET_DIR)/libpixrect_g.a
|
|
LIB_p = $(TARGET_DIR)/libpixrect_p.a
|
|
LIB_pg = $(TARGET_DIR)/libpixrect_pg.a
|
|
LIB_so = $(TARGET_DIR)/libpixrect.so
|
|
LIB_sa = $(TARGET_DIR)/libpixrect.sa
|
|
LIB_sh = $(LIB_sa) $(LIB_so)
|
|
|
|
CSRC = $(CDATA) $(CNORM) $(CNOOPT) $(CNORO)
|
|
|
|
OBJ1 = $(CSRC:.c=.o) $(MOREOBJ) $(ASRC:.S=.o)
|
|
OBJ2 = $(CPROM:.c=.o) $(CSTAND:.c=.o)
|
|
OBJ = $(OBJ1) $(OBJ2)
|
|
|
|
ODATA = $(CDATA:.c=.o)
|
|
ONOOPT = $(CNOOPT:.c=.o)
|
|
ONORO = $(CNORO:.c=.o)
|
|
OSHSA1 = $(CSHSA1:.c=.o)
|
|
OSHSA2 = $(CSHSA2:.c=.o)
|
|
OSHSA = $(OSHSA1) $(OSHSA2)
|
|
|
|
$(LIB_sh) := OBJ1 += $(OSHSA2)
|
|
|
|
SHOBJ = $(OBJ1:%.o=$(SHOBJ_DIR)/%.o)
|
|
SHDATA = $(ODATA:%.o=$(SHOBJ_DIR)/%.o)
|
|
SHNOOPT = $(ONOOPT:%.o=$(SHOBJ_DIR)/%.o)
|
|
SHONORO = $(ONORO:%.o=$(SHOBJ_DIR)/%.o)
|
|
|
|
# note: CSHNOROs also appear in CSRC; used only to kill -R
|
|
SHNORO = $(CSHNORO:%.c=$(SHOBJ_DIR)/%.o)
|
|
|
|
# misc commands/flags
|
|
CPP = /lib/cpp -E
|
|
ARFLAGS = ruc
|
|
|
|
# compiler flags
|
|
INCLUDE = -I.. -I../pixrect -I../../../sys -I../../../include -I../../libsunwindow
|
|
FLAGS =
|
|
FLOAT-sun2 = -fsoft
|
|
FLOAT-sun3 = -fsoft
|
|
FLOAT = $(FLOAT$(TARGET_ARCH))
|
|
OPTIM = -O
|
|
PIC = -pic -DPIC
|
|
READONLY = -R
|
|
SHLIB = $(PIC) -DSHLIB
|
|
SHLIB_SA = -DSHLIB_SA
|
|
|
|
$(LIB_g) := READONLY=
|
|
$(LIB_g) := OPTIM=
|
|
|
|
$(ONORO) \
|
|
$(LIB)($(ONORO)) \
|
|
$(LIB_p)($(ONORO)) \
|
|
$(LIB_pg)($(ONORO)) \
|
|
$(SHNORO) \
|
|
$(SHONORO) \
|
|
:= READONLY=
|
|
|
|
CPPFLAGS = $(INCLUDE) $(PIXINC)
|
|
|
|
CFBASE = $(FLAGS) $(FLOAT)
|
|
CFDATA = $(CFBASE)
|
|
CFNOOPT = $(CFBASE) $(READONLY)
|
|
CFNORM = $(CFBASE) $(OPTIM) $(READONLY)
|
|
|
|
CFLAGS = $(CFNORM)
|
|
|
|
$(ODATA) \
|
|
$(LIB)($(ODATA)) \
|
|
$(LIB_p)($(ODATA)) \
|
|
$(LIB_pg)($(ODATA)) \
|
|
$(SHDATA) \
|
|
:= CFLAGS = $(CFDATA)
|
|
|
|
$(ONOOPT) \
|
|
$(LIB)($(ONOOPT)) \
|
|
$(LIB_p)($(ONOOPT)) \
|
|
$(LIB_pg)($(ONOOPT)) \
|
|
$(SHNOOPT) \
|
|
:= CFLAGS = $(CFNOOPT)
|
|
|
|
$(LIB_sh) := ASFLAGS += $(SHLIB)
|
|
|
|
$(LIB_sh) \
|
|
$(SHDATA) \
|
|
$(SHNOOPT) \
|
|
:= CFLAGS += $(SHLIB)
|
|
|
|
$(LIB_sa) := ASFLAGS += $(SHLIB_SA)
|
|
$(LIB_sa) := CFLAGS += $(SHLIB_SA)
|
|
|
|
# rules
|
|
.SUFFIXES: .IL .IL~
|
|
|
|
$(TARGET_DIR)/%.il: %.IL
|
|
$(CPP) -I$(PIXINC) $< > $@
|
|
|
|
$(TARGET_DIR)/%.o $(SHOBJ_DIR)/%.o: %.c
|
|
$(COMPILE.c) -o $@ $<
|
|
|
|
$(TARGET_DIR)/%.o $(SHOBJ_DIR)/%.o: %.S
|
|
$(COMPILE.S) -o $@ $<
|
|
|
|
$(LIB_p)(%.o): %.c
|
|
$(COMPILE.c) -p -o $% $<
|
|
$(AR) $(ARFLAGS) $@ $%
|
|
$(RM) $%
|
|
$(LIB_pg)(%.o): %.c
|
|
$(COMPILE.c) -pg -o $% $<
|
|
$(AR) $(ARFLAGS) $@ $%
|
|
$(RM) $%
|
|
$(LIB_g)(%.o): %.c
|
|
$(COMPILE.c) -g -o $% $<
|
|
$(AR) $(ARFLAGS) $@ $%
|
|
$(RM) $%
|
|
$(LIB_g)(%.o) $(LIB_p)(%.o) $(LIB_pg)(%.o): %.S
|
|
$(COMPILE.c) -o $% $<
|
|
$(AR) $(ARFLAGS) $@ $%
|
|
$(RM) $%
|
|
|
|
.PRECIOUS: $(LIB) $(LIB_p) $(LIB_g) $(LIB_pg)
|
|
|
|
default:
|
|
@echo "no target specified" ; exit 1
|
|
|
|
clean:
|
|
$(RM) $(OBJ)
|
|
|
|
ALL_SRCS = $(CSRC) $(ASRC) $(MORESRC) $(HDRS)
|
|
|
|
populate: $(ALL_SRCS) $(MAKEFILE)
|
|
|
|
sid: $(ALL_SRCS) $(MAKEFILE)
|
|
$(SID_WHAT) $(ALL_SRCS) $(MAKEFILE) >> $(SID_FILE)
|
|
|
|
tags: $(ALL_SRC)
|
|
$(TAGS_CMD) -f $(TAGS_FILE) $(ALL_SRCS:%=$(DEVDIR)/%)
|
|
$(RM) `basename $(TAGS_FILE)`; \
|
|
ln -s $(TAGS_FILE) `basename $(TAGS_FILE)`
|
|
|
|
|
|
# indirection to avoid `foo' is up to date messages
|
|
libpixrect%: $(TARGET_DIR)/libpixrect%
|
|
|
|
$(LIB) \
|
|
$(LIB_g) \
|
|
$(LIB_p) \
|
|
$(LIB_pg): $$@($$(OBJ)) $(MORESRC)
|
|
|
|
$(LIB_sa): $$@($(OSHSA)) $(MORESRC)
|
|
|
|
$(LIB_so): $$(SHOBJ) $(MORESRC)
|
|
|
|
FRC:
|