summaryrefslogtreecommitdiffstats
path: root/mdk-stage1
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1')
-rw-r--r--mdk-stage1/Makefile12
-rw-r--r--mdk-stage1/automatic.c6
-rw-r--r--mdk-stage1/cdrom.c2
3 files changed, 12 insertions, 8 deletions
diff --git a/mdk-stage1/Makefile b/mdk-stage1/Makefile
index 5ce7f91c3..55fe0a071 100644
--- a/mdk-stage1/Makefile
+++ b/mdk-stage1/Makefile
@@ -108,7 +108,7 @@ LDFLAGS_STAGE1 = -static
endif
-BINS = init stage1-full # stage1-cdrom stage1-network
+BINS = init stage1-full stage1-cdrom stage1-network
#ifeq (i386, $(ARCH))
@@ -142,23 +142,23 @@ init: $(INITOBJS)
$(CC) $(LDFLAGS_INIT) -o $@ $(INITOBJS)
strip -s $@
-stage1-cdrom: dirs $(STAGE1OBJS-CDROM) $(STAGE1OBJS_UTILS)
+stage1-cdrom: $(STAGE1_OWN_LIBS) $(STAGE1OBJS-CDROM) $(STAGE1OBJS_UTILS)
$(CC) $(LDFLAGS_STAGE1) -o $@ $(STAGE1OBJS-CDROM) $(STAGE1OBJS_UTILS)
strip -s $@
-stage1-network: dirs $(STAGE1OBJS-NETWORK) $(STAGE1OBJS_UTILS)
+stage1-network: $(STAGE1_OWN_LIBS) $(STAGE1OBJS-NETWORK) $(STAGE1OBJS_UTILS)
$(CC) $(LDFLAGS_STAGE1) -o $@ $(STAGE1OBJS-NETWORK) $(STAGE1OBJS_UTILS) $(STAGE1_NETWORK_LIBS)
strip -s $@
-stage1-disk: dirs $(STAGE1OBJS-DISK) $(STAGE1OBJS_UTILS)
+stage1-disk: $(STAGE1_OWN_LIBS) $(STAGE1OBJS-DISK) $(STAGE1OBJS_UTILS)
$(CC) $(LDFLAGS_STAGE1) -o $@ $(STAGE1OBJS-DISK) $(STAGE1OBJS_UTILS)
strip -s $@
-stage1-pcmcia: dirs $(STAGE1OBJS-PCMIA) $(STAGE1OBJS_UTILS)
+stage1-pcmcia: $(STAGE1_OWN_LIBS) $(STAGE1OBJS-PCMIA) $(STAGE1OBJS_UTILS)
$(CC) $(LDFLAGS_STAGE1) -o $@ $(STAGE1OBJS-PCMIA) $(STAGE1OBJS_UTILS)
strip -s $@
-stage1-full: dirs $(STAGE1OBJS) $(STAGE1OBJS_UTILS)
+stage1-full: $(STAGE1_OWN_LIBS) $(STAGE1OBJS) $(STAGE1OBJS_UTILS)
$(CC) $(LDFLAGS_STAGE1) -o $@ $(STAGE1OBJS) $(STAGE1OBJS_UTILS) $(STAGE1_NETWORK_LIBS)
strip -s $@
diff --git a/mdk-stage1/automatic.c b/mdk-stage1/automatic.c
index 8c742ab60..b92cc9e40 100644
--- a/mdk-stage1/automatic.c
+++ b/mdk-stage1/automatic.c
@@ -89,17 +89,19 @@ enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, ch
if (!IS_AUTOMATIC)
return ask_from_list(msg, elems, choice);
else {
+ char ** sav_elems = elems;
char * tmp = get_auto_value(auto_param);
while (elems && *elems) {
if (!strcmp(tmp, *elems_auto)) {
*choice = *elems;
log_message("AUTOMATIC: parameter %s for %s means returning %s", tmp, auto_param, *elems);
- break;
+ return RETURN_OK;
}
elems++;
elems_auto++;
}
- return RETURN_OK;
+ unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
+ return ask_from_list(msg, sav_elems, choice);
}
}
diff --git a/mdk-stage1/cdrom.c b/mdk-stage1/cdrom.c
index 44e0b85fc..14ece3c04 100644
--- a/mdk-stage1/cdrom.c
+++ b/mdk-stage1/cdrom.c
@@ -43,6 +43,8 @@ static enum return_type try_with_device(char *dev_name)
if (my_mount(device_fullname, "/tmp/image", "iso9660") == -1) {
enum return_type results;
+ unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
+
results = ask_yes_no("I can't access a CDROM disc in your drive.\nRetry?");
if (results == RETURN_OK)
return try_with_device(dev_name);