blob: 7b0ecb3770f4f51b445a5702fcdf2d591df2e769 (
plain) (
tree)
|
|
.POSIX:
# Choose either yes or no (determines whether system call,
# signal, and error tables, for the list operating systems,
# shall be compiled into the library)
LINUX_SUPPORT = $(DEFAULT_OS_SUPPORT_SELECTION)
# Choose operating system to compile the library for
OS = linux
# Linux: linux
# Mac OS: macos
# Windows: windows
CONFIGFILE = config.mk
include $(CONFIGFILE)
include mk/$(OS).mk
LIB_MAJOR = 1
LIB_MINOR = 0
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
LIB_NAME = syscalls
all: libsyscalls.a libsyscalls.$(LIBEXT)
#extended for each support operating system to download the operating system's source code
download:
SUPPORTED_ARCHES =\
AMD64\
AMD64_X32\
M68K\
PARISC_32\
PARISC_64\
SPARC_32\
I386
# Excluded because of missing support in libsyscalls_get_datatype_description.c:
# ALPHA ARM_OABI ARM_EABI IA64 MICROBLAZE MIPS_O32 MIPS_N32 MIPS_N64 POWERPC_32
# POWERPC_64 POWERPC_NOSPU POWERPC_SPU S390_32 S390_64 SH SPARC_64 XTENSA
include $(CONFIGFILE)
# Reloading the user's config in case it limits supported architectures
#extended for each support operating system with the operating system's name as appropriate for filenames
OPERATING_SYSTEMS =
#extended for each support operating system with the number of syscall parameters they use
NPARAMS =
#extended for each support operating system
OBJ =\
libsyscalls_get_datatype_description.o\
libsyscalls_get_signals.o\
libsyscalls_get_syscall.o\
libsyscalls_get_syscall_display_info.o\
libsyscalls_get_syscall_errors.o\
libsyscalls_get_syscall_range.o\
libsyscalls_perror.o\
libsyscalls_strerror.o\
libsyscalls_syscalls_tables_.o
#extended for each support operating system
HDR =\
libsyscalls.h\
common.h\
generated/arches.h\
generated/lowercase.h\
generated/oses.h\
generated/macros.h\
$(SUBHDR)
SUBHDR =\
libsyscalls/advanced.h\
libsyscalls/internal-begin.h\
libsyscalls/internal-end.h\
libsyscalls/short-enums.h
.SUFFIXES:
.SUFFIXES: .lo .o .c
include linux/$(LINUX_SUPPORT).mk
include mk/generate.mk
include $(CONFIGFILE)
# Reloading the user's config as the makefiles for the OS
# may have made changes to what is supported
LOBJ = $(OBJ:.o=.lo)
$(OBJ): $(HDR)
$(LOBJ): $(HDR)
.c.o:
$(CC) -c -o $@ $< $(CFLAGS) $(IMPORTANT_CFLAGS) $(CPPFLAGS) $(IMPORTANT_CPPFLAGS)
.c.lo:
$(CC) -fPIC -c -o $@ $< $(CFLAGS) $(IMPORTANT_CFLAGS) $(CPPFLAGS) $(IMPORTANT_CPPFLAGS)
libsyscalls.a: $(OBJ)
@rm -f -- $@
$(AR) rc $@ $(OBJ)
$(AR) ts $@ > /dev/null
libsyscalls.$(LIBEXT): $(LOBJ)
$(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)
install: libsyscalls.a libsyscalls.$(LIBEXT)
mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
mkdir -p -- "$(DESTDIR)$(PREFIX)/include/libsyscalls"
cp -- libsyscalls.a "$(DESTDIR)$(PREFIX)/lib/"
cp -- libsyscalls.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBMINOREXT)"
$(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBMINOREXT)"
ln -sf -- libsyscalls.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBMAJOREXT)"
ln -sf -- libsyscalls.$(LIBMAJOREXT) "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBEXT)"
cp -- libsyscalls.h "$(DESTDIR)$(PREFIX)/include/"
cp -- $(SUBHDR) "$(DESTDIR)$(PREFIX)/include/libsyscalls/"
uninstall:
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libsyscalls.a"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBMAJOREXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBMINOREXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libsyscalls.$(LIBEXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/include/libsyscalls.h"
-cd -- "$(DESTDIR)$(PREFIX)/include/" && rm -f -- $(SUBHDR)
-rmdir -- "$(DESTDIR)$(PREFIX)/include/libsyscalls"
clean: buildclean
-rm -rf -- $(OPERATING_SYSTEMS:=-src/)
buildclean: semiclean
-rm -rf -- generated/ $(OPERATING_SYSTEMS:=-src/*/)
semiclean:
-rm -f -- *.o *.lo *.su *.gch *.gcov *.gcno *.gcda .*.tmp
-rm -f -- */*.o */*.lo */*.su */*.gch */*.gcov */*.gcno */*.gcda
-rm -f -- *.a *.so *.so.* *.dll *.dylib *.$(LIBEXT)
-rm -f -- libsyscalls/short-enums.h
.PHONY: all download install uninstall clean semiclean
|