OBJCOPY := objcopy
# libosl's versioning consists of three numbers. Let's call them x, y and z.
-# The way x, y and z are interpreted depends on the OS.
x := 0
y := 1
z := 3
CFLAGS += -Wmissing-format-attribute
CFLAGS += -Wunused-macros
CFLAGS += -Wbad-function-cast
-
-# cflags used only for building library objects
-LIBCFLAGS += -fPIC
-LIBCFLAGS += -fvisibility=hidden
-
-uname_s := $(shell uname -s 2>/dev/null || echo "UNKNOWN_OS")
+CFLAGS += -fPIC
+CFLAGS += -fvisibility=hidden
libname := osl
-ifeq ($(uname_s),Linux)
- format := elf
- LDFLAGS += -Wl,-soname,$(soname)
- # disallow undefined symbols
- LDFLAGS += -Wl,-z,defs
-endif
-ifeq ($(uname_s),Darwin)
- # Darwin has its own idea on version numbers:
- realname := lib$(libname).$(x).dylib
- soname := $(realname)
- linkername := lib$(libname).dylib
- # The minor version number is an incremental number using the format
- # X[.Y[.Z]]. To set the minor version number of a dynamic library, use
- # the gcc -current_version option.
- LDFLAGS += -current_version $(y).$(z)
- #
- # The compatibility version number of a library release specifies the
- # earliest minor version of the clients linked against that release can
- # use.
- LDFLAGS += -compatibility_version $(y).0
- LDFLAGS += -dynamiclib
-endif
-ifeq ($(uname_s),SunOS)
- format := elf
- # Solaris needs another set of flags
- LDFLAGS += -z text
- LDFLAGS += -z defs
- CPPFLAGS += -I/opt/csw/include
- LDFLAGS += -lc
-endif
+LDFLAGS += -Wl,-soname,$(soname)
+# disallow undefined symbols
+LDFLAGS += -Wl,-z,defs
-ifeq ($(uname_s),NetBSD)
- format := elf
- LDFLAGS += -Wl,-soname,$(soname)
-endif
+# On ELf-based systems, the following conventions apply (see dhweeler's
+# Program Library HOWTO):
+#
+# The soname has the prefix ``lib'', the name of the library, the
+# phrase ``.so'', followed by a period and a version number that is
+# incremented whenever the interface changes.
+soname := lib$(libname).so.$(x)
-ifeq ($(uname_s),FreeBSD)
- format := elf
- LDFLAGS += -Wl,-soname,$(soname)
-endif
+# The real name adds to the soname a period, a minor number, another
+# period, and the release number.
+realname := $(soname).$(y).$(z)
-ifeq ($(format),elf)
- # On ELf-based systems, the following conventions apply (see dhweeler's
- # Program Library HOWTO):
- #
- # The soname has the prefix ``lib'', the name of the library, the
- # phrase ``.so'', followed by a period and a version number that is
- # incremented whenever the interface changes.
- soname := lib$(libname).so.$(x)
-
- # The real name adds to the soname a period, a minor number, another
- # period, and the release number.
- realname := $(soname).$(y).$(z)
-
- # In addition, there's the name that the compiler uses when requesting
- # a library, (I'll call it the ``linker name''), which is simply the
- # soname without any version number.
- linkername := lib$(libname).so
- LDFLAGS += --shared
-endif
+# In addition, there's the name that the compiler uses when requesting
+# a library, (I'll call it the ``linker name''), which is simply the
+# soname without any version number.
+linkername := lib$(libname).so
+LDFLAGS += --shared
all: $(realname) $(executables) $(man_pages)
shared: $(realname)
-include $(deps)
endif
%.o: %.c Makefile errtab.h
- $(CC) $(CPPFLAGS) -c -MMD -MF $(*F).d -MT $@ $(CFLAGS) $(LIBCFLAGS) $<
+ $(CC) $(CPPFLAGS) -c -MMD -MF $(*F).d -MT $@ $(CFLAGS) $<
fsck.o: oslfsck.lsg.h
oslfsck: $(fsck_objects)