diff options
Diffstat (limited to 'mdk-stage1')
-rw-r--r-- | mdk-stage1/Makefile | 12 | ||||
-rw-r--r-- | mdk-stage1/automatic.c | 6 | ||||
-rw-r--r-- | mdk-stage1/cdrom.c | 2 |
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); |