Index: trunk/Makefile.conf.in =================================================================== --- trunk/Makefile.conf.in (revision 26903) +++ trunk/Makefile.conf.in (revision 26904) @@ -19,6 +19,7 @@ EXE=@/target/sys/ext_exe@ PCB_RND_HOST_CC=@/host/cc/cc@ PCB_RND_VER=@/local/version@ +PCB_RND_VER_MAJOR=@/local/version_major@ # hidlib installation directories HL_LIBDIR=$(Install_root)@/local/prefix@/@/local/libarchdir@ Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 26903) +++ trunk/scconfig/hooks.c (revision 26904) @@ -918,10 +918,10 @@ /* Runs after detection hooks, should generate the output (Makefiles, etc.) */ int hook_generate() { - char *next, *rev = "non-svn", *curr, *tmp; + char *next, *rev = "non-svn", *curr, *tmp, *sep; int generr = 0; int res = 0; - char apiver[32]; + char apiver[32], version_major[32]; long r = 0; int v1, v2, v3; @@ -939,9 +939,15 @@ v3 = atoi(next+1); sprintf(apiver, "%01d%01d%02d%05ld", v1, v2, v3, r); + strcpy(version_major, version); + sep = strchr(version_major, '.'); + if (sep != NULL) + *sep = '\0'; + logprintf(0, "scconfig generate version info: version='%s' rev='%s'\n", version, rev); put("/local/revision", rev); put("/local/version", version); + put("/local/version_major", version_major); put("/local/apiver", apiver); put("/local/pup/sccbox", "../../scconfig/sccbox"); Index: trunk/src/Makefile.in =================================================================== --- trunk/src/Makefile.in (revision 26903) +++ trunk/src/Makefile.in (revision 26904) @@ -412,7 +412,25 @@ OBJS_HIDLIB_ALL = $(OBJS_HIDLIB_PLG) $(OBJS_C99_HIDLIB_PLG) $(OBJS_HIDLIB) $(OBJS_HIDLIB_ONLY) $(OBJS_C99_HIDLIB) DEPS_HIDLIB_ALL = $(OBJS_HIDLIB_ALL) $(EXEDEPS) $(LIBS_3RD) buildin.hidlib.h +@] +switch cc/soname + case {} print [@ +SONAME_HID= +SONAME_3RD= +SONAME_POLY= +@] + end; + default print [@ +SONAME_HID=@cc/soname@librnd-hid.so.$(PCB_RND_VER_MAJOR) +SONAME_3RD=@cc/soname@librnd-3rd.so.$(PCB_RND_VER_MAJOR) +SONAME_POLY=@cc/soname@librnd-poly.so.$(PCB_RND_VER_MAJOR) +@] + end; +end + +print [@ + librnd-hid.a: $(DEPS_HIDLIB_ALL) $(AR) rvu librnd-hid.a $(OBJS_HIDLIB_ALL) @@ -423,13 +441,13 @@ $(AR) rvu librnd-poly.a $(OBJS_POLYLIB) librnd-hid.so.$(PCB_RND_VER): $(DEPS_HIDLIB_ALL) - $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ -o librnd-hid.so.$(PCB_RND_VER) $(OBJS_HIDLIB_ALL) + $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ $(SONAME_HID) -o librnd-hid.so.$(PCB_RND_VER) $(OBJS_HIDLIB_ALL) librnd-3rd.so.$(PCB_RND_VER): $(OBJS_3RDLIB) - $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ -o librnd-3rd.so.$(PCB_RND_VER) $(OBJS_3RDLIB) + $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ $(SONAME_3RD) -o librnd-3rd.so.$(PCB_RND_VER) $(OBJS_3RDLIB) librnd-poly.so.$(PCB_RND_VER): $(OBJS_POLYLIB) - $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ -o librnd-poly.so.$(PCB_RND_VER) $(OBJS_POLYLIB) + $(CC) $(LDFLAGS) -shared @cc/ldflags_dynlib@ $(SONAME_POLY) -o librnd-poly.so.$(PCB_RND_VER) $(OBJS_POLYLIB) HIDLIB_CLEAN_FILES=\ librnd-hid.so.$(PCB_RND_VER) librnd-hid.a \