CC = $(CROSS_COMPILE)gcc LD = $(CROSS_COMPILE)gcc AR = $(CROSS_COMPILE)ar RANLIB = $(CROSS_COMPILE)ranlib REALNAME = libfunc.so.0.0.1 SONAME = libfunc.so.0 LINKERNAME = libfunc.so STATICNAME = libfunc.a OBJS = func1.o func2.o CFLAGS = -fPIC -g -Wall -Werror LDFLAGS = -shared -Wl,-soname,$(SONAME) $(LINKERNAME): $(REALNAME) ln -sf $< $@ $(REALNAME): $(OBJS) $(CC) -o$@ $(LDFLAGS) $(OBJS) $(STATICNAME): $(OBJS) $(AR) cr $@ $(OBJS) $(RANLIB) $@ %.o: %.c $(CC) -c -o$@ $(CFLAGS) $< install: $(REALNAME) echo "/opt/acme/lib" > /etc/ld.so.conf.d/acme.conf mkdir -p /opt/acme/lib cp $< /opt/acme/lib/ ldconfig clean: rm -f $(OBJS) $(REALNAME) $(SONAME) $(LINKERNAME) $(STATICNAME) .PHONY: install clean