diff --git a/package/network/config/swconfig/Makefile b/package/network/config/swconfig/Makefile
index d1c8fd7b5e1d90de7f87d150e5e6c4766b9dc966..e4a00d6d63309948843c642ade0eb273d09d72e9 100644
--- a/package/network/config/swconfig/Makefile
+++ b/package/network/config/swconfig/Makefile
@@ -42,13 +42,12 @@ define Build/InstallDev
 	$(CP) $(PKG_BUILD_DIR)/swlib.h $(1)/usr/include/
 
 	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_BUILD_DIR)/libsw.so $(1)/usr/lib/
+	$(CP) $(PKG_BUILD_DIR)/libsw.a $(1)/usr/lib/
 endef
 
 define Package/swconfig/install
 	$(INSTALL_DIR) $(1)/sbin $(1)/lib/network
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/swconfig $(1)/sbin/swconfig
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/libsw.so $(1)/lib
 	$(INSTALL_DATA) ./files/switch.sh $(1)/lib/network/
 endef
 
diff --git a/package/network/config/swconfig/src/Makefile b/package/network/config/swconfig/src/Makefile
index 1176bf0e40035db5a5af11072f8632dffc89bcb9..e972a4439771cee023071e1cb85bc47e142671e7 100644
--- a/package/network/config/swconfig/src/Makefile
+++ b/package/network/config/swconfig/src/Makefile
@@ -8,8 +8,9 @@ all: swconfig
 %.o: %.c
 	$(CC) $(CFLAGS) -fPIC -c -o $@ $^
 
-libsw.so: swlib.o
-	$(CC) $(CFLAGS) -fPIC -shared -o $@ swlib.o
+libsw.a: swlib.o
+	$(AR) rcu $@ swlib.o
+	$(RANLIB) $@
 
-swconfig: libsw.so cli.o uci.o
+swconfig: libsw.a cli.o uci.o
 	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -L./ -lsw