66
66
parents = pkg_appendToList(parents, NULL, uprv_strdup(infiles->str));
68
68
/* make up commands.. */
69
sprintf(stanza, "$(INVOKE) $(GENCCODE) -n %s -d $(TEMP_DIR) $<", o->shortName);
69
sprintf(stanza, "$(INVOKE) $(GENCCODE) -n $(ENTRYPOINT) -d $(TEMP_DIR) $<");
70
71
commands = pkg_appendToList(commands, NULL, uprv_strdup(stanza));
72
73
sprintf(stanza, "$(COMPILE.c) -o $@ $(TEMP_DIR)/%s", cfile);
96
uprv_strcpy(tmp, LIB_PREFIX);
97
uprv_strcat(tmp, o->shortName);
98
uprv_strcat(tmp, UDATA_SO_SUFFIX);
97
uprv_strcpy(tmp, LIB_PREFIX "$(NAME)" UDATA_SO_SUFFIX);
100
99
/* We should be the only item. So we don't care about the order. */
101
100
o->outFiles = pkg_appendToList(o->outFiles, &tail, uprv_strdup(tmp));
127
126
if (o->version) {
128
127
sprintf(tmp, ".%s", o->version);
129
128
if (!uprv_strchr(o->version, '.')) {
130
uprv_strcat(tmp, ".0");
129
uprv_strcat(tmp, ".0");
132
131
T_FileStream_writeLine(makefile, tmp);
133
T_FileStream_writeLine(makefile, "\nDLL_LDFLAGS=$(LD_SONAME) $(RPATH_LDFLAGS)\n");
132
T_FileStream_writeLine(makefile, "\nDLL_LDFLAGS=$(LD_SONAME) $(RPATH_LDFLAGS) $(BIR_LDFLAGS)\nDLL_DEPS=$(BIR_DEPS)\n");
135
T_FileStream_writeLine(makefile, "\nDLL_LDFLAGS=$(BIR_LDFLAGS)\nDLL_DEPS=$(BIR_DEPS)\n");
134
T_FileStream_writeLine(makefile, "\nDLL_LDFLAGS=$(BIR_LDFLAGS)\nDLL_DEPS=$(BIR_DEPS)\n");
137
136
T_FileStream_writeLine(makefile, "\n");
147
146
T_FileStream_writeLine(makefile, tmp);
148
147
uprv_strcpy(tmp, "SO_TARGET_VERSION_MAJOR=");
149
148
for (p = tmp + uprv_strlen(tmp), v = o->version; *v && *v != '.'; ++v) {
155
154
T_FileStream_writeLine(makefile, tmp);
157
156
T_FileStream_writeLine(makefile, "FINAL_SO_TARGET=$(TARGET)\n");
157
T_FileStream_writeLine(makefile, "MIDDLE_SO_TARGET=$(TARGET)\n");
160
160
uprv_strcpy(tmp, "all: $(TARGETDIR)/$(FINAL_SO_TARGET) $(BATCH_TARGET)");
168
168
writeObjRules(o, makefile, &objects);
170
170
sprintf(tmp, "# List file for gencmn:\n"
171
"CMNLIST=%s%s%s_dll.lst\n\n",
171
"CMNLIST=%s%s$(NAME)_dll.lst\n\n",
175
174
T_FileStream_writeLine(makefile, tmp);
177
176
if(o->hadStdin == FALSE) { /* shortcut */
189
sprintf(tmp,"$(TEMP_DIR)/%s_dat.o : $(TEMP_DIR)/%s_dat.c\n"
190
"\t$(COMPILE.c) -o $@ $<\n\n",
188
sprintf(tmp,"$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME)_dat.c\n"
189
"\t$(COMPILE.c) -o $@ $<\n\n");
193
190
T_FileStream_writeLine(makefile, tmp);
195
192
T_FileStream_writeLine(makefile, "# 'TOCOBJ' contains C Table of Contents objects [if any]\n");
197
sprintf(tmp, "$(TEMP_DIR)/%s_dat.c: $(CMNLIST)\n"
198
"\t$(INVOKE) $(GENCMN) -e %s -n %s -S -d $(TEMP_DIR) 0 $(CMNLIST)\n\n", o->shortName, o->entryName, o->shortName);
194
sprintf(tmp, "$(TEMP_DIR)/$(NAME)_dat.c: $(CMNLIST)\n"
195
"\t$(INVOKE) $(GENCMN) -e $(ENTRYPOINT) -n $(NAME) -S -d $(TEMP_DIR) 0 $(CMNLIST)\n\n");
199
197
T_FileStream_writeLine(makefile, tmp);
200
sprintf(tmp, "TOCOBJ= %s_dat%s \n\n", o->shortName,OBJ_SUFFIX);
198
sprintf(tmp, "TOCOBJ= $(NAME)_dat%s \n\n", OBJ_SUFFIX);
201
199
T_FileStream_writeLine(makefile, tmp);
202
200
sprintf(tmp, "TOCSYM= %s_dat \n\n", o->entryName); /* entrypoint not always shortname! */
203
201
T_FileStream_writeLine(makefile, tmp);